在Laravel动作中发送多个参数

时间:2016-11-02 10:14:59

标签: php laravel laravel-5

我想问我可以在动作标签中发送多个参数,例如我可以发送两个id参数,类似这样吗

<a href="{{ route('product.makeOrder',['id' => $order->id]),here I want to send Auth::user()->id }}" name="req" class="btn btn-warning">Order this product!</a>

这可能吗?

3 个答案:

答案 0 :(得分:0)

您不需要发送Auth::user()对象,因为它是全局对象,您可以在模型和控制器中获取它。

如果由于某种原因你还想发送它,你可以:

  1. 使用隐藏的输入:
  2. {!! Form::open(['route' => 'data.store']) !!} {!! Form::hidden('user_id', auth()->user()->id) !!} {!! Form::submit('Submit') !!} {!! Form::close() !!}

    然后在控制器中获取它:

    public function store(Request $request)
    {
        $userId = $request->user_id;
    

    当您想要发送多个参数和大数据参数(如数组或JSON)时,这种方式很好。

    1. 如果您想使用简单GET,可以执行以下操作:
    2. <a href="{{ url('make-order/'.$order->id.'/'.auth()->user()->id) }}">Send parameters</a>

      将路线设为:

      Route::get('make-order/{id}/{userId}', 'SomeController@makeOrder');
      

      然后在控制器中获取数据:

      public function makeOrder($id, $userId)
      
      1. 使用request()帮助器和GET参数:
      2. <a href="{{ url('make-order?orderId='.$order->id.'&userId='.auth()->user()->id) }}">

        然后使用以下命令从控制器或模型访问参数:

        $orderId = request()->orderId;
        $userId = request()->userId;
        

答案 1 :(得分:0)

您可以通过键入请求

在数据控制器中接收它
.gz

答案 2 :(得分:0)

是的,你可以。试试这种方式

<强> route.php

Route::get('info/{param1}/{param2}', ['as' => 'product.makeOrder', 'uses' =>YourController@yourMethod']);

现在使用

<a href="{{ route('product.makeOrder',[$param1, $param2])}}" name="req" class="btn btn-warning">Order this product!</a>