我在使用Laravel 5.8,在這個專案中,我想在DB中插入一個會話值:
我在使用Laravel 5.8。
if(session('video-products')){
UserVideo::create([
'user_id' => auth()-> user()-> usr_id,
'product_id' => session('video-products')。
'order_id' => $orderId,
]);
}
但它并不奏效,沒有插入任何東西。而當我dd(session('video-products'))時,我得到了這個結果:
array:1 [▼
0 => 33
]
而表的欄位是這樣的。product_id varchar(2500) utf8_general_ci
那么這里出了什么問題?我怎樣才能正確地插入這個陣列會話值呢?
uj5u.com熱心網友回復:
因為你試圖在product_id列插入一個陣列。請嘗試:
if(session('video-products')){
UserVideo::create([
'user_id' => auth()-> user()-> usr_id,
'product_id' => session('video-products')[0] 。
'order_id' => $orderId,
]);
}
如果有更多的值:
.if(session('video-products')){
foreach(session('video-products') as $sid){
UserVideo::create([
'user_id' => auth()-> user()->usr_id,
'product_id' => $sid。
'order_id' => $orderId,
]);
}
}
uj5u.com熱心網友回復:
你需要對它進行回圈以創建所有的條目
if(is_array(session('video-products')) & & session('video-products')){
$userVideoToBeInserted = [] 。
foreach(session('video-products') as $productId) {
$userVideoToBeInserted[] = [
'user_id' => auth()-> user()-> usr_id,
'product_id' => $productId,
'order_id' => $orderId,
];
}
UserVideo::insert($userVideoToBeInserted) 。
}
如果你對會話中的產品ID有一個統一性問題,為了避免重復,你可以使用$productId作為索引
if(is_array(session('video-products')) & & session('video-products')){
$userVideoToBeInserted = [] 。
foreach(session('video-products') as $productId) {
$userVideoToBeInserted[$productId] = [
'user_id' => auth()-> user()->usr_id,
'product_id' => $productId,
'order_id' => $orderId,
];
}
UserVideo::insert($userVideoToBeInserted) 。
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/332256.html
標籤:
下一篇:0和1的中心矩陣
