Cakephp 用户未与LastBookmarks关联

Cakephp 用户未与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);

我正在学习Lynda关于CakePHP3基础知识的教程,我遇到了这个问题。任务是,当您查看一个用户时,此用户实体还必须包含有关他上次添加的书签的信息

所以教程上的那个家伙做的是:

在bookmarks表中,我添加了一个关系hasOne

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上!