【问题标题】:Laravel parameter issueLaravel 参数问题
【发布时间】:2016-12-13 15:59:51
【问题描述】:

缺少 App\Http\Controllers\Company\OrderController::store() 的参数 2

我的商店控制器出现此错误,我的表单正在传递 2 个参数,但未找到第二个参数。

Route: Route::resource('order', 'OrderController'); $company 被转换为控制器中的模型。

形式:

<form class="form-horizontal" role="form" method="POST" action="{{action('Company\OrderController@store', [$company,$orderid])}}">
    {{ csrf_field() }}
    <button type="submit" class="btn btn-primary">Accept</button>
</form>

有什么想法吗?

谢谢!

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    如果您使用Route::resource() 创建了store 路由,它不需要任何参数,应该如下所示:

    public function store(Request $request)
    

    因此,您需要使用隐藏输入来传递数据,例如:

    {!! Form::hidden('data', 'some data') !!}
    

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

    $data = $request->data;
    

    【讨论】:

      【解决方案2】:

      您应该像这样指定key-value 对:

      ['company_id' => $company->id, 'order_id' => $order->id]
      

      所以你的表单看起来像:

      <form action="{{ action('Company\OrderController@store', ['company_id' => $company->id, 'order_id' => $order->id]) }}">
      
          <input type="hidden" name="_token" value="{{ csrf_token() }}">
      
          <button type="submit" class="btn btn-primary">Accept</button>
      
      </form>
      

      希望这会有所帮助!

      【讨论】:

      • 这不起作用,因为store() 不会传递任何参数。您可以使用php artisan route:list 命令查看生成的路由。
      猜你喜欢
      • 2015-07-16
      • 1970-01-01
      • 1970-01-01
      • 2020-05-18
      • 2021-08-03
      • 2021-03-22
      • 2022-01-05
      • 1970-01-01
      • 2017-11-12
      相关资源
      最近更新 更多