我正在开发这个来批量存储用户"订单"。我的疑问是:我如何在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);
}
欢迎任何帮助!
你有没有打开调试?因为这个脚本根本不应该运行。您不应该能够静态地调用该方法。
试试这个:
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);
}