php - yii2 Basic - 如何使用其他表中的 id 在 GridView 列中显示数据?

标签 php yii2 php-7

我是 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_NoVehicle.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/

相关文章:

php - add-apt-repository ondrej/php 用于旧的 ubuntu 版本 (14) 和 php 7.0

php - 我们如何将自托管的 git 存储库与 Composer 一起使用?

javascript - 通过 javascript 将点击值传递给模态

javascript - 充当文件上传的div?

mysql - 如何在 Yii2 中制作多个 UPSERT?

PHP mail()/sendmail 自 Apache 2.4 PHP7 升级后无法正常工作

php - 如何在 Yii 中保存数据并确保正确保存?

rest - Yii2:如何将“每页分页数”更改为RESTful Web服务API?

javascript - yii2 不起作用 $this->redirect

PHP array_column() 不返回对象虚假值