Tal*_*ain 44 php laravel-5 laravel-5.1
我想在$ items数组中添加新元素,我不想出于某些原因使用连接.
$items = DB::select(DB::raw('SELECT * FROM items WHERE items.id = '.$id.' ;'));
foreach($items as $item){
$product = DB::select(DB::raw(' select * from product
where product_id = '. $id.';' ));
$item->push($product);
}
Run Code Online (Sandbox Code Playgroud)
我应该怎么做,请提前帮助thnx
Pas*_*nes 87
根据Laravel文档看起来你的一切都是正确的,但你有一个错字
$item->push($product);
Run Code Online (Sandbox Code Playgroud)
应该
$items->push($product);
Run Code Online (Sandbox Code Playgroud)
我也想想你正在寻找的实际方法 put
$items->put('products', $product);
Run Code Online (Sandbox Code Playgroud)
Alp*_*lpy 14
如上所述,如果您希望将查询的集合添加为新元素,您可以使用:
$items = DB::select(DB::raw('SELECT * FROM items WHERE items.id = '.$id.' ;'));
foreach($items as $item){
$product = DB::select(DB::raw(' select * from product
where product_id = '. $id.';' ));
$items->push($product);
// or
// $items->put('products', $product);
}
Run Code Online (Sandbox Code Playgroud)
但是如果您希望向每个查询的元素添加新元素,您需要执行以下操作:
$items = DB::select(DB::raw('SELECT * FROM items WHERE items.id = '.$id.' ;'));
foreach($items as $item){
$product = DB::select(DB::raw(' select * from product
where product_id = '. $id.';' ));
$item->add_whatever_element_you_want = $product;
}
Run Code Online (Sandbox Code Playgroud)
add_whatever_element_you_want
可以是您希望元素命名的任何内容(例如产品)。
Jso*_*owa 13
如果要将项目添加到集合的开头,可以使用prepend:
$item->prepend($product, 'key');
Run Code Online (Sandbox Code Playgroud)