【发布时间】:2017-08-01 14:00:46
【问题描述】:
views/search.php
<?php foreach($dataProvider->getModels() as $call){ ?>
<tbody>
<tr>
<td><?=$call->created?></td>
<td><?=$call->call_datetime?></td>
<td><?=$call->call_from?></td>
<td><?=$call->call_to?></td>
<td><?=$call->duration?></td>
<td><?=$call->call_type?></td>
<td><?=$call->extension?></td>
<td><?=$call->callRecFiles->fname?></td>
</tr>
</tbody>
<?php } ?>
models/Call.php 中的关系
public function getCallRecFiles()
{
return $this->hasOne(CallRecording::className(), ['callref' => 'callref']);
}
控制器动作搜索
public function actionSearch($id)
{
$cust = new Customer();
Yii::$app->user->identity->getId();
$dataProvider = new ActiveDataProvider([
'query' => Call::find()
->with('customer', 'callRecFiles') // eager loading relations 'customer' & 'callRecFiles'
->where(['custref' => $id])
->limit(10),
'pagination' => false, // defaults to true | when true '->limit()' is automatically handled
]);
return $this->render('search',[
'dataProvider' => $dataProvider,
'cust' => $cust,
]);
}
我在这里做错了什么或错过了什么?我浏览了其他类似的问题,但似乎都涉及小部件或文件输入。任何帮助表示赞赏。
【问题讨论】:
-
错误是什么?
-
试图获取非对象的属性
-
在哪个模型->你有这个错误?
-
不要像那样打印它们,而是运行
foreach()和var_dump($call)并查看属性是否存在。我猜是callRecFiles给了你错误,看看它是否存在。你也可以试试if(isset($call->callRecFiles) echo $call->callRecFiles->fname
标签: php yii2 relationship yii2-advanced-app dataprovider