cakephp3 - 插件 class Table 未加载
cakephp3 - plugin class Table not load
我用蛋糕制作了一个插件博客php3。
当我调用 url /blog/edit/3 时,一切都很好,表单输入已填写。
我有一个class\Blog\Model\Table\ArticlesTable(文件位置:ROOT/plugins/Blog/src/Model/Table/ArticlesTable.php)
这里是 class :
<?php
namespace Blog\Model\Table;
use \Cake\ORM\Table;
use \Cake\Validation\Validator;
class ArticlesTable extends Table
{
public function initialize(array $config)
{
//die('IN ArticlesTable::initialize');
$this->table('articles');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
}
public function validationDefault(Validator $validator)
{
...
}
}
在调试器中,我看到消息:
Generated Models
The following Table objects used Cake\ORM\Table instead of a concrete
class: Articles
- 我检查命名空间和文件的大小写
- 我运行命令composer dumpautoloader
但是我的class没有加载
有人知道我的问题吗?
谢谢
菲尔
在 src/Model/Table
文件夹中创建 ArticlesTable
class。最简单的方法是使用烘焙命令
bin/cake bake model Articles
我解决了这个问题。加载模型时需要指定插件命名空间:
$this->loadModel('Namespace.TableName');
在我的示例中,我更改了:
class BlogController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadModel('Articles');//<----- HERE
}
...
}
到
class BlogController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadModel('Blog.Articles'); //<----- HERE
}
...
}
我用蛋糕制作了一个插件博客php3。 当我调用 url /blog/edit/3 时,一切都很好,表单输入已填写。
我有一个class\Blog\Model\Table\ArticlesTable(文件位置:ROOT/plugins/Blog/src/Model/Table/ArticlesTable.php)
这里是 class :
<?php
namespace Blog\Model\Table;
use \Cake\ORM\Table;
use \Cake\Validation\Validator;
class ArticlesTable extends Table
{
public function initialize(array $config)
{
//die('IN ArticlesTable::initialize');
$this->table('articles');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
}
public function validationDefault(Validator $validator)
{
...
}
}
在调试器中,我看到消息:
Generated Models
The following Table objects used Cake\ORM\Table instead of a concrete class: Articles
- 我检查命名空间和文件的大小写
- 我运行命令composer dumpautoloader
但是我的class没有加载
有人知道我的问题吗?
谢谢
菲尔
在 src/Model/Table
文件夹中创建 ArticlesTable
class。最简单的方法是使用烘焙命令
bin/cake bake model Articles
我解决了这个问题。加载模型时需要指定插件命名空间:
$this->loadModel('Namespace.TableName');
在我的示例中,我更改了:
class BlogController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadModel('Articles');//<----- HERE
}
...
}
到
class BlogController extends AppController
{
public function initialize()
{
parent::initialize();
$this->loadModel('Blog.Articles'); //<----- HERE
}
...
}