Yii 按关系检索CGridView中的数据值
关系:Yii 按关系检索CGridView中的数据值,yii,Yii,关系: public function relations() { return array( 'submissionStatus' => array(self::HAS_ONE, 'SubmissionStatus', 'submission_status_id'), ); } GridView中的列值: 'value' => '$data->submissionStatus->submission_status_name', Sub
public function relations() {
return array(
'submissionStatus' => array(self::HAS_ONE, 'SubmissionStatus', 'submission_status_id'),
);
}
GridView中的列值:
'value' => '$data->submissionStatus->submission_status_name',
SubmissionStatus模型属性:
public function attributeLabels() {
return array(
'submission_status_id' => 'Status ID',
'submission_status_name' => 'Status Name',
);
}
提交状态关系:
public function relations() {
return array(
'submissionStatus' => array( self::BELONGS_TO, 'Submission', 'submission_status_id' ),
);
}
但我有一个错误:
正在尝试获取非对象的属性
为什么我不能通过此关系检索提交\u状态\u名称
编辑:
另一方面,这一点非常有效:
'submissionStatus' => array(self::BELONGS_TO, 'SubmissionStatus', 'submission_status')
数据库:
| tbl_submission |
-----------------------------------
| submission_id (int) PK |
| submission_name (varchar) |
| submission_status_id (int) FK |
| tbl_submission_status |
------------------------------------
| submission_status_id (int) PK |
| submission_status_name (varchar) |
如果关系字段的值为空,则关系将不会返回外部模型的对象;因此,在其中调用属性将导致错误 试着改变
'value' => '$data->submissionStatus->submission_status_name',
到
这里只有两个问题 如果你的关系真的有效 在gridview中获取数据很热 我认为你在房地产交易中犯了一个错误。“属于”和“拥有”的区别在于,它试图以不同的方式创造不动产。你可以发布你的数据库表,它们有哪些字段,我们需要看看什么是键和外来的jey字段。 我猜在一个表中是id,在另一个表中是submission\u status\u id。 尝试改变这两种关系中的一种,如果其中一种有效,则尝试: 一, “submissionStatus”=>arrayself::有一个“submissionStatus”,数组“submissionStatus”=>id “submissionStatus”=>arrayself::有一个“submissionStatus”,数组“id”=> 二, 在您的网格中,您使用的代码是正确的,但正如@manquery的注释所述,如果关系返回null,它将不起作用。 但您可以在GridViw中尝试更具Yii风格的样式,如下所示: 不要只给出名称而给出任何值
“名称”=>“>提交状态。提交状态\u名称”如何获取提交状态\u名称?在gridview中,作为列式数据库结构之一的值
'value' => '(isset($data->submissionStatus))?
$data->submissionStatus->submission_status_name:""',