YII2我如何处理多对多关系?

时间:2018-10-17 06:45:27

标签: php sql yii2 many-to-many

我是YII2的新手,我的人际关系有问题:

我有用户和类别。他们有男/女关系。现在,我想查看用户拥有的类别。为此,我制作了一个名为“ user_category”的表,该表如下所示: enter image description here

在我的模型中,我具有以下建议的代码 How do I work with many-to-many relations in Yii2

public function getUsers(){
    return $this->hasMany(TabUser::className(), ['intUserID' => 'intUserID'])
        ->viaTable('user_category', ['intCategoryID' => 'intCategoryID']);
}
public function getCategories(){
    return $this->hasMany(TabCategory::className(), ['intCategoryID' => 'intCategoryID'])
        ->viaTable('user_category', ['intUserID' => 'intUserID']);
}

然后我将它们链接在一起:

if($user->validate()) {
        $user->link('categories', $category);
    }

    var_dump($user->getCategories());

但这不会返回我的类别,它会返回以下内容: enter image description here

有人知道我做错了吗?

感谢您的时间和帮助!!

2 个答案:

答案 0 :(得分:1)

尝试像这样划分表情,应该可以:

$categories = $user->categories;
var_dump($categories);

答案 1 :(得分:0)

方法getCategories()返回ActiveQuery对象而不是模型。如果需要获取类别模型的数组,则必须使用神奇的属性categories。例如:

var_dump($user->categories);