首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2:如何通过关系访问表列

Yii2:如何通过关系访问表列
EN

Stack Overflow用户
提问于 2019-04-03 07:28:32
回答 1查看 55关注 0票数 0

我有两张桌子,dpdcabang。一个cabang只能有一个dpd,每个cabang应该有一个dpd

这就是我的"Cabang“模型中的关系:

代码语言:javascript
复制
public function getIdDpd()
{
    return $this->hasOne(Dpd::className(), ['id_dpd' => 'id_dpd']);
}

我试图在我的视图中访问"dpd“表中的"dpd”属性,我试图访问var_dump,但仍然得到了相同的错误:

代码语言:javascript
复制
$model = Cabang::find()
        ->joinWith('idDpd')
        ->all();

var_dump($model->dpd);

注意:'dpd' var_dump($model->dpd) 中的引用了 'Dpd' 表中的列名。我在我的'dpd' 'dpd' 表中有一个列名。我也尝试过$model->idDpd->dpd ,但是它返回相同的错误。

我做错了什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-03 08:04:38

你的错误是

代码语言:javascript
复制
$model->dpd

假设$modelDpd对象,但是它保存着Cabang对象,您应该使用关系名来获取Dpd对象,然后像下面这样调用字段名。

代码语言:javascript
复制
$model->idDpd->dpd

编辑:您在查询中使用的是->all() ->one() ,而不是->one(),因此在查询之后不能简单地执行 $model->idDpd->dpd ,您需要遍历记录,然后调用关系,我想您可能也是这样做的,但无论如何,下面将看到如何使用.

代码语言:javascript
复制
$cabangs = Cabang::find()
        ->joinWith('idDpd')
        ->all();

foreach($cabangs as $index=>$model){
    $model->idDpd->dpd;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55489397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档