Cakephp 用户未与LastBookmarks关联
我正在学习Lynda关于CakePHP3基础知识的教程,我遇到了这个问题。任务是,当您查看一个用户时,此用户实体还必须包含有关他上次添加的书签的信息 所以教程上的那个家伙做的是: 在bookmarks表中,我添加了一个关系hasOneCakephp 用户未与LastBookmarks关联,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我正在学习Lynda关于CakePHP3基础知识的教程,我遇到了这个问题。任务是,当您查看一个用户时,此用户实体还必须包含有关他上次添加的书签的信息 所以教程上的那个家伙做的是: 在bookmarks表中,我添加了一个关系hasOne class BookmarksTable extends Table { public function initialize(array $config) { parent::initialize($config);
class BookmarksTable extends Table
{
public function initialize(array $config)
{
parent::initialize($config);
$this->table('bookmarks');
$this->displayField('title');
$this->primaryKey('id');
$this->addBehavior('Timestamp');
$this->belongsTo('Users', [
'foreignKey' => 'user_id'
]);
$this->belongsToMany('Tags', [
'foreignKey' => 'bookmark_id',
'targetForeignKey' => 'tag_id',
'joinTable' => 'bookmarks_tags'
]);
// i have added this line
$this->hasOne('LastBookmarks', [
'className' => 'Bookmarks',
'foreignKey' => 'user_id'
]);
}
我的usersController在包含数组中添加了LastBookmarks
public function view($id = null)
{
$user = $this->Users->get($id, [
'contain' => ['Bookmarks', 'LastBookmarks']
]);
$this->set('user', $user);
$this->set('_serialize', ['user']);
}
我得到的错误是,用户与LastBookmarks没有关联
这是一个错误的打印屏幕,当我在一个用户上按view时,我会看到它
我怎样才能克服我的问题?如果您需要任何其他信息,请让我知道并提供。谢谢您正在尝试在
用户
表中查找,因此您缺少该表中的关联
class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('LastBookmarks');
}
}
这对您来说可能并不完全正确,但基本上错误是告诉您,Users
表不知道什么是LastBookmark
,因为它与它没有关联
添加
UsersTable
需要与LastBookmarksTable
相关的更正关联,您试图在Users
表中查找,因此缺少该表中的关联
class UsersTable extends Table
{
public function initialize(array $config)
{
$this->hasOne('LastBookmarks');
}
}
这对您来说可能并不完全正确,但基本上错误是告诉您,Users
表不知道什么是LastBookmark
,因为它与它没有关联
添加
UsersTable
需要与LastBookmarksTable
相关的更正关联是的,您是对的。有人认为,没有最新的书签表。。。在教程中有书签和用户表。但不知何故,盖伊通过$this->hasOne('lastbookmark')代码在用户上生成lastbookmark信息。任何在用户表中添加此关联的方法都适合我。现在我明白了:D我添加的代码不应该在BookmarksTable上,而是在UsersTable:D Thx man上!是的,你是对的。有人认为,没有最新的书签表。。。在教程中有书签和用户表。但不知何故,盖伊通过$this->hasOne('lastbookmark')代码在用户上生成lastbookmark信息。任何在用户表中添加此关联的方法都适合我。现在我明白了:D我添加的代码不应该在BookmarksTable上,而是在UsersTable:D Thx man上!