gridview yii2中一列中两个函数的数据
在模型中有两个功能gridview yii2中一列中两个函数的数据,yii2,Yii2,在模型中有两个功能 公共函数getItemsOrder(){ 返回$this->hasMany(OrderItems::className(),['order\u id'=>'order\u id']); } public function getOrderInfo(){ return $this->hasMany(OrderItemsOffer::className(), ['order_items_id' => 'order_items_id']) -&g
公共函数getItemsOrder(){
返回$this->hasMany(OrderItems::className(),['order\u id'=>'order\u id']);
}
public function getOrderInfo(){
return $this->hasMany(OrderItemsOffer::className(), ['order_items_id' => 'order_items_id'])
->viaTable('order_items', ['order_id' => 'order_id']);
}`
表order
具有order\u id
,表order\u items
具有order\u id
和order\u items\u id
,表order\u items\u offer
具有order\u items\u offer\u name
。一个order\u id
可以有多个order\u items\u id
。表order\u items
还包含order\u items\u数量
。
我可以使用第一个函数获取订单项目的数量。以及所有带有第二个函数的订单项目的名称,如下所示
[
'value' => function ($data) {
$summ = 0;
$str = 0;
foreach($data->itemsOrder as $request) {
$str .= $request->order_items_quantity;
$summ += $str;
}
return $summ;
},
],
['value' => function($data){
$sum = '';
foreach ($data->orderInfo as $request){
$str = ($request->order_items_offer_name);
$sum .= $str.',';
}
return $sum ;
}],
我怎样才能在一列中获得这些数据,比如“第一项2件,第二项3件”?也许有人可以帮助,在OrderItems中创建
public function getOrderInfo(){
return $this->hasOne(OrderItemsOffer::className(), ['order_items_id' => 'order_items_id']);
}
鉴于
[
'value' => function ($data) {
$summ = 0;
$str = '';
foreach($data->itemsOrder as $request) {
$summ = $request->order_items_quantity;
$str .= (strlen($str))?', ': '';
$str .= $request->orderInfo->order_items_offer_name.' '.$summ.'шт.';
}
return $str;
},
],
可能重复@Bizley的问题是另一种不同的方法,在你的模型中写一个,并在你的视图中调用它。