在模型中有两个功能
public function getItemsOrder(){
return $this->hasMany(OrderItems::className(), ['order_id' => 'order_id']);
}
public function getOrderInfo(){
return $this->hasMany(OrderItemsOffer::className(), ['order_items_id' => 'order_items_id'])
->viaTable('order_items', ['order_id' => 'order_id']);
}`
表order
有order_id
,表order_items
有order_id
和order_items_id
,表order_items_offer
有order_items_id
和{{ 1}}。一个order_items_offer_name
可以包含多个order_id
。表格order_items_id
也有order_items
。
我可以通过第一个函数获得order_items_quantity
的数量。以及具有第二功能的所有order_items
的名称,如此
order_items
我怎样才能将这些数据放在一列中,比如'FirstItem 2 piece,SecondItem 3 piece'?
答案 0 :(得分:0)
也许有人帮忙,在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;
},
],