我需要獲取我的應用程序(包括插件)的所有模型的列表。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