Associations 这些协会是如何运作的?CakePHP3.x

Associations 这些协会是如何运作的?CakePHP3.x,associations,cakephp-3.0,Associations,Cakephp 3.0,我开始学习新的CakePHP3.x。 我想这样做: $data = $this->users->find('all');//i want to get user title name debug($data->toArray());//but i use associations. It is not join. 我的协会代码: use Cake\ORM\Table; use Cake\Validation\Validator; class User

我开始学习新的CakePHP3.x。 我想这样做:

$data = $this->users->find('all');//i want to get user title name
debug($data->toArray());//but i use associations. It is not join.
我的协会代码:

    use Cake\ORM\Table;
    use Cake\Validation\Validator;

    class UserTitlesTable extends Table
    {
        public function initialize(array $config) {
            $this->table('user_titles');
            $this->hasMany('Users');
        }
    }

    use Cake\ORM\Table;
    use Cake\Validation\Validator;
    use Cake\ORM\Query;

    class UsersTable extends Table
    {
        public function initialize(array $config) {
            $this->table('users');
            $this->hasOne('UserTitles');
        }
    }
我的表名和行名:表=用户,行=用户\u标题\u id,表=用户\u标题行=id


我不写加入。如何自动加入

您需要阅读文档,了解这是如何实现的。问题在于您所拥有的关联:

用户有一个用户名,ok用户有一个用户名

UserTitles有许多用户,titles有许多这并不表示关系

不良联想

你是这样说的:

表用户行:id、用户\u标题\u id

表用户标题行:id,用户id

这不应该发生

应该是:

用户有一个用户名,ok用户有一个用户名

UserTitles belongsTo User,如果需要,也可以使用belongstomy

现在在你的桌子上:

表用户行:id

表用户标题行:id,用户id

有了这种关系,这就是工作

$data = $this->Users->UserTitles->find('all')->toArray();
请参阅以下文件:。你必须在结果中包含你想要的关联。谢谢兄弟:)这是链接。很好:)我明白了$这个->用户->查找('all')->包含(['UserTitles']);
$data = $this->Users->UserTitles->find('all')->toArray();