带有Yii的内部联接的BDD请求

时间:2015-08-11 15:54:00

标签: php mysql yii yii2

我是Yii Framework的新手。 我的目标是显示当前用户拥有的所有“平板电脑”。

在我的模型中,我有2个表,Tablette和Client。在Tablette中有一个指向Client表的外键,用于标识tablette的所有者。

这是我的控制器代码:

public function displayTablettesUser()
{
    $user_id = Yii::$app->user->getId();

    $var_tablette = Tablette::find()->where(['ID_fk_client' => 'user_id']);

    // Send toutes les tablettes du client
    return $this->render('profile', array('tablettes' => $var_tablette));
}

这是我的PHP代码,用于显示当前用户的平板电脑:

<?php

use yii\helpers\Html;
use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;
use yii\widgets\Breadcrumbs;
use app\assets\AppAsset;

AppAsset::register ( $this );

foreach($tablettes as $tablette){
        echo($tablette->code)." : ".$tablette->iDFkClient->firstName."</br>";
}


?>

当我加载我的网页时,我收到此错误:

  

尝试获取非对象的属性。

我认为我是这个框架的初学者,我可能错过了一些东西,但我不知道是什么。

1 个答案:

答案 0 :(得分:0)

除了评论之外,如果你用Gii生成模型,你应该在Tablette模型中有一个函数,如:

public function getClient()
{
    return $this->hasOne(Client::className(), ['id' => 'ID_fk_client']);
}

所以观点:

foreach($tablettes as $tablette){
        echo ($tablette->code)." : ".$tablette->getClient()->one()->firstName."</br>";
}