我有两张桌子,dpd和cabang。一个cabang只能有一个dpd,每个cabang应该有一个dpd。
这就是我的"Cabang“模型中的关系:
public function getIdDpd()
{
return $this->hasOne(Dpd::className(), ['id_dpd' => 'id_dpd']);
}我试图在我的视图中访问"dpd“表中的"dpd”属性,我试图访问var_dump,但仍然得到了相同的错误:
$model = Cabang::find()
->joinWith('idDpd')
->all();
var_dump($model->dpd);注意:'dpd' var_dump($model->dpd) 中的引用了 'Dpd' 表中的列名。我在我的'dpd' 'dpd' 表中有一个列名。我也尝试过$model->idDpd->dpd ,但是它返回相同的错误。
我做错了什么?谢谢
发布于 2019-04-03 08:04:38
你的错误是
$model->dpd假设$model有Dpd对象,但是它保存着Cabang对象,您应该使用关系名来获取Dpd对象,然后像下面这样调用字段名。
$model->idDpd->dpd编辑:您在查询中使用的是->all() ->one() ,而不是->one(),因此在查询之后不能简单地执行 $model->idDpd->dpd ,您需要遍历记录,然后调用关系,我想您可能也是这样做的,但无论如何,下面将看到如何使用.。
$cabangs = Cabang::find()
->joinWith('idDpd')
->all();
foreach($cabangs as $index=>$model){
$model->idDpd->dpd;
}https://stackoverflow.com/questions/55489397
复制相似问题