我正在开发这个以批量存储用户“订单”。
我的疑问是:如何在OrderController store()
中请求用户数据
我已经调试了这个,$id_user
是null
,可能是因为我已经在使用Request::get
表单数据了。
我可以从表单输入中传递$id_user
,但我想这不安全。
public function store(Request $request)
{
$quantities = Request::get('quantity');
$products = Request::get('id_product');
$hash_card = Request::get('hash_card');
$user = Request::user();
$id_user = $user->id_user;
$total_products = count($products);
for($i=0;$i<$total_products;$i++){
if($quantities[$i]>0){
$id_product = $products[$i];
$quantity = $quantities[$i];
$product=Product::find($id_product);
$product_price=$product->price;
$order_data[] = [
'id_user' => $id_user,
'id_product' => $id_product,
'quantity' => $quantity,
'product_price' => $product_price,
'hash_card' => $hash_card
];
}
}
Order::insert($order_data);
return redirect('pedidos?add&card='.$hash_card);
}
欢迎任何帮助!
答案 0 :(得分:3)
你有调试吗?因为这个脚本根本不应该运行。您不应该静态调用该方法。
试试这个:
public function store(Request $request)
{
$quantities = $request->quantity;
$products = $request->id_product;
$hash_card = $request->hash_card;
$id_user = $request->user()->id;
$total_products = count($products);
for($i=0;$i<$total_products;$i++){
if($quantities[$i]>0){
$id_product = $products[$i];
$quantity = $quantities[$i];
$product=Product::find($id_product);
$product_price=$product->price;
$order_data[] = [
'id_user' => $id_user,
'id_product' => $id_product,
'quantity' => $quantity,
'product_price' => $product_price,
'hash_card' => $hash_card
];
}
}
Order::insert($order_data);
return redirect('pedidos?add&card='.$hash_card);
}