我是 yii2 框架的新手。我以前从未使用过这个 freework。如果有人能帮助我,那就太好了。 实际上我已经为“维护”表创建了一个 CRUD。在维护表中,有一列名为“Vehicle_ID”,它是“车辆”表中的外键 (FK)。现在的问题是,用于维护的 GridView 将“Vehicle_ID”显示为1,但我想要的是它根据“Vehicle”表中的id显示“Plat_No”。有人可以帮我解决这些问题吗...
我应该在 GridView 代码中更改以下哪些内容?
<div class="box-body">
<h2 class="page-header">View Insurance # ID : <?php echo $model->Insurance_ID; ?></h2>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'Insurance_ID',
'Expiry_Date',
'Due_Date',
'Current_Coverage',
'Cover_Date_From',
'Cover_Date_To',
'Insurance_Provider',
'Policy_Cover_Note_No',
'NCD_Percent',
'Basic_Sum_Insured',
'Wind_Screen_Sum_Insured',
'Total_Premium_Price',
'Vehicle_ID', <!--Don't want this. How should I change here?-->
],
]) ?>
</div>
最佳答案
在维护模型类中,您必须与车辆表创建关系。您可以使用关系引用来调用车辆列。在网格中使用 Vehicle.Plat_No
。您可以尝试使用vehicle.Plat_No
或Vehicle.Plat_No
。列名区分大小写。
<div class="box-body">
<h2 class="page-header">View Insurance # ID : <?php echo $model->Insurance_ID; ?></h2>
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'Insurance_ID',
'Expiry_Date',
'Due_Date',
'Current_Coverage',
'Cover_Date_From',
'Cover_Date_To',
'Insurance_Provider',
'Policy_Cover_Note_No',
'NCD_Percent',
'Basic_Sum_Insured',
'Wind_Screen_Sum_Insured',
'Total_Premium_Price',
'Vehicle.Plat_No', <!--Don't want this. How should I change here?-->
],
]) ?>
</div>
关系看起来像这样
public function getVehicle()
{
return $this->hasOne(Vehicle::className(), ['id' => 'Vehicle_id']);
}
如果关系不存在,请使用 gii https://www.yiiframework.com/doc/guide/2.0/en/start-gii 重新生成模型文件
关于php - yii2 Basic - 如何使用其他表中的 id 在 GridView 列中显示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59353649/