Php 如何将关系属性添加到gridview yii2?
我有一个新问题。 如何在views/viewname/index中显示gridview中其他表的关系值,并在其中添加确认按钮 多谢各位Php 如何将关系属性添加到gridview yii2?,php,web,yii,yii2,frameworks,Php,Web,Yii,Yii2,Frameworks,我有一个新问题。 如何在views/viewname/index中显示gridview中其他表的关系值,并在其中添加确认按钮 多谢各位 获取可以添加到模型中的相关值 关系的函数 public function getYourRelatedModel() { return $this->hasOne(YourRelatedModel::className(), ['id' => 'your_id_fk']); } 然后为需要的字段添加一个getter public f
获取可以添加到模型中的相关值
关系的函数
public function getYourRelatedModel()
{
return $this->hasOne(YourRelatedModel::className(), ['id' => 'your_id_fk']);
}
然后为需要的字段添加一个getter
public function getYour_field() {
return $this->yourRelatedModel->your_field;
}
最后将列添加到gridview
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'network',
'technology',
'sup_id',
'speaker',
'your_field',
如何在gridview中显示来自其他表的关系值
考虑订单和客户模型
然后,模型建立客户关系
public function getCustomer()
{
return $this->hasOne(Customer::className(), ['id' => 'customer_id']);
}
在订单列表页面中显示客户名称
<?= GridView::widget([
'dataProvider' => $dataProvider,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label' => 'Customer',
'attribute' => 'customer_id',
'value' => function($data) {
return $data->customer->name;
},
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
有没有什么方法可以把它链接起来 在网格列中添加“属性”,它解决了可排序问题
[
'value'=> 'customer.name',
'label' => 'Customer Name',
],
试试这个来显示客户的名字
如果要对其进行排序,需要在searchModel中创建一个customerName伪属性并使用它。是否有任何方法为此创建sortby链接?如果单击“按已单击的属性对每列进行排序”,则在每列的顶部。但当它是另一个表的属性时,它没有该链接。@areff。这可能有用。。看看场景2