我需要获取我的应用程序(包括插件)的所有模型的列表。Cake 3.x:列出所有模型
在Cake 2中,您可以使用App::objects('Model');
。我怎么能在cake 3.x中做到这一点?
谢谢!
鲍勃
我需要获取我的应用程序(包括插件)的所有模型的列表。Cake 3.x:列出所有模型
在Cake 2中,您可以使用App::objects('Model');
。我怎么能在cake 3.x中做到这一点?
谢谢!
鲍勃
我不知道这会有所帮助,但它应该给你所有你将能够获得的信息。至于评论者的观点,CakePHP 3中并没有真正的“模型” - 有表和实体。
use Cake\Datasource\ConnectionManager;
use Cake\ORM\TableRegistry;
// ...
$tables = ConnectionManager::get('default')->schemaCollection()->listTables();
foreach($tables as $key => $table) {
$tableData = TableRegistry::get($table);
debug($tableData);
}
返回此为每个表:
object(App\Model\Table\PhotosTable) {
'registryAlias' => 'photos',
'table' => 'photos',
'alias' => 'photos',
'entityClass' => '\Cake\ORM\Entity',
'associations' => [
(int) 0 => 'tags',
(int) 1 => 'categorized'
],
'behaviors' => [
(int) 0 => 'Timestamp',
(int) 1 => 'Sluggable'
],
'defaultConnection' => 'default',
'connectionName' => 'default'
}
你可以列出像在我们这里模式中的表:你可以得到表的列表在这里:http://book.cakephp.org/3.0/ en/orm/schema-system.html#schema-collections,但是对于列表模型我还不确定。您可能需要使用php代码,如'get_declared_classes(),请参阅这里的问题和答案:http://stackoverflow.com/questions/5225971/is-it-possible-to-get-list-of-defined-namespaces – antoniovassell
可能的重复[列出CakePHP 3.x中的所有表格](http://stackoverflow.com/questions/30255196/list-all-tables-in-cakephp-3-x) –
@BayezidAlam它不是重复的,因为它不是关于表;) – Bob