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

时间:2019-04-03 07:28:33

标签: yii2

我有两个表npm install selenium-webdriver const {Builder, By, Key, until} = require('selenium-webdriver'); (async function example() { let driver = await new Builder().forBrowser('firefox').build(); try { await driver.get('http://www.google.com/ncr'); await driver.findElement(By.name('q'));.sendKeys('webdriver', Key.RETURN); await driver.wait(until.titleIs('webdriver - Google Search'), 1000); } finally { await driver.quit(); } })(); 。一个dpd只能有一个cabang,每个cabang应该有一个dpd

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

cabang

我尝试在视图中访问“ dpd”表中的“ dpd”属性,我尝试对它进行var_dump,但仍然遇到相同的错误:

dpd

注意:public function getIdDpd() { return $this->hasOne(Dpd::className(), ['id_dpd' => 'id_dpd']); } 中的$model = Cabang::find() ->joinWith('idDpd') ->all(); var_dump($model->dpd); 引用了'dpd'表中的列名。我的var_dump($model->dpd)表中有一个列名'Dpd'。我也尝试过'dpd',但它返回了相同的错误。

我在做什么错?谢谢

1 个答案:

答案 0 :(得分:1)

您的错误是

$model->dpd

假设$modelDpd对象,但您尝试访问它,但它持有Cabang对象,您应该使用关系名称来获取{{1 }}对象,然后按如下所示调用字段名称。

Dpd

编辑:您在查询中使用的是$model->idDpd->dpd ,而不是->all(),因此查询后不能简单地执行->one(),您需要遍历记录,然后打电话给我,我想你可能会做同样的事情,但是无论如何请看下面如何使用它。

$model->idDpd->dpd