【问题标题】:How to use Request::user() inside a controller in Laravel 5?如何在 Laravel 5 的控制器中使用 Request::user()?
【发布时间】:2015-10-13 07:04:52
【问题描述】:

我正在开发此功能以批量存储用户“订单”。 我的疑问是:如何在 OrderController store() 中请求用户数据 我已经调试过了,$id_usernull,可能是因为我已经在使用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);   

    }

欢迎任何帮助!

【问题讨论】:

    标签: php laravel laravel-5


    【解决方案1】:

    你有调试吗?因为这个脚本根本不应该运行。您不应该能够静态调用该方法。

    试试这个:

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

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 2014-09-21
      • 2015-12-27
      • 2018-11-15
      • 1970-01-01
      • 1970-01-01
      • 2016-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多