PHP: 如何根据id作为外键显示来自其他模型的数据?
PHP: How to show data from other model based on an id as foreign key?
我有一个使用 yii2 框架的应用程序。
我的应用程序有一个包含 tables:
的数据库
class
=>
- id => 作为 PK
- class_name
- teacher_id
student
=>
- id
- class_id => 作为 class_id 作为来自
class
table 的外键
- student_name
- 年龄
- 性别
等等
在我的 index.php(class) 中,我使用 Kartik Gridview 来显示 class 的数据。
大家知道,gridview中有很多动作,比如view按钮动作。
例子:
我的 index.php 以 gridView 形式显示来自 class
且 id
= 101 的数据。
如何显示 student
table 中 class_id
= 101 的所有 student_name
?
我有这个代码:
在我的 class.php 在我的 class 模型中
public function getStudents() {
return $this->hasMany(students::className(), ['class_id' => 'class_id']);
}
以及我的 gridView 的代码
view.php 在我的 class 视图中
<?=
DetailView::widget([
'model' => $model,
'condensed' => true,
'hover' => true,
'enableEditMode' => false,
'mode' => DetailView::MODE_VIEW,
'panel' => [
'heading' => 'Data Detail',
'type' => DetailView::TYPE_INFO,
],
'attributes' => [
'alamat_lengkap',
'jumlah_dpp',
'jumlah_ppn',
'jumlah_ppnbm',
'fg_uang_muka',
'uang_muka_dpp',
'uang_muka_ppn',
'uang_muka_ppnbm',
[
'label' => 'Kode Objek',
'value' => $model->students->student_name, //this code didn't work and return error as "Trying to get property of non-object"
],
],
])
?>
我们将不胜感激 :),谢谢 :)
对于DetailView
:
'value' => implode(',', \yii\helpers\ArrayHelper::map($model->fakturOutDetails, 'id', 'student_name')),
对于GridView
:
'value' => function($model) {
return implode(',', \yii\helpers\ArrayHelper::map($model->fakturOutDetails, 'id', 'student_name')),
},
我有一个使用 yii2 框架的应用程序。
我的应用程序有一个包含 tables:
的数据库class
=>- id => 作为 PK
- class_name
- teacher_id
student
=>- id
- class_id => 作为 class_id 作为来自
class
table 的外键
- student_name
- 年龄
- 性别
等等
在我的 index.php(class) 中,我使用 Kartik Gridview 来显示 class 的数据。
大家知道,gridview中有很多动作,比如view按钮动作。
例子:
我的 index.php 以 gridView 形式显示来自 class
且 id
= 101 的数据。
如何显示 student
table 中 class_id
= 101 的所有 student_name
?
我有这个代码:
在我的 class.php 在我的 class 模型中
public function getStudents() {
return $this->hasMany(students::className(), ['class_id' => 'class_id']);
}
以及我的 gridView 的代码
view.php 在我的 class 视图中
<?=
DetailView::widget([
'model' => $model,
'condensed' => true,
'hover' => true,
'enableEditMode' => false,
'mode' => DetailView::MODE_VIEW,
'panel' => [
'heading' => 'Data Detail',
'type' => DetailView::TYPE_INFO,
],
'attributes' => [
'alamat_lengkap',
'jumlah_dpp',
'jumlah_ppn',
'jumlah_ppnbm',
'fg_uang_muka',
'uang_muka_dpp',
'uang_muka_ppn',
'uang_muka_ppnbm',
[
'label' => 'Kode Objek',
'value' => $model->students->student_name, //this code didn't work and return error as "Trying to get property of non-object"
],
],
])
?>
我们将不胜感激 :),谢谢 :)
对于DetailView
:
'value' => implode(',', \yii\helpers\ArrayHelper::map($model->fakturOutDetails, 'id', 'student_name')),
对于GridView
:
'value' => function($model) {
return implode(',', \yii\helpers\ArrayHelper::map($model->fakturOutDetails, 'id', 'student_name')),
},