2015-10-12 2 views
1

Я разрабатываю это, чтобы хранить пользователей «Заказы» в партии. Я сомневаюсь: как я могу запросить данные пользователя внутри OrderController store() Я уже отлаживал это и $id_usernull, вероятно, потому что я уже использую Request::get для данных формы. Я могу передать $id_user с входами формы, но я думаю, что это не безопасно.Как использовать Request :: user() внутри контроллера в Laravel 5?

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); 

    } 

Любая помощь приветствуется!

ответ

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); 

} 
Смежные вопросы