【问题标题】:Form not routing to named route Laravel 5.8表单未路由到命名路由 Laravel 5.8
【发布时间】:2020-01-11 18:52:02
【问题描述】:

我知道我在这里做的是非常基本的事情,但我似乎找不到问题所在。我的表单没有路由到它的named route. 我是否以错误的方式命名我的route

表格

<form action="{{route('inventory.deduct', 'test')}}" method="post">
    @csrf
    <div class="modal-body">
        Enter number of items to issue for:
        <input type="text" name="itemname" id="itemname" class="form-control" readonly>
        <input type="text" id="itemid" name="itemid" hidden>
    </div>
    <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
        <button type="button" class="btn btn-primary">Save changes</button>
    </div>
</form>

路线

Route::post('inventory/{id}/deduct', 'InventoryController@deduct')->name('inventory.deduct');

【问题讨论】:

  • 你能写出你得到的错误吗?
  • 路由中经常出现的一个错误是'inventory.deduct'已经作为路由存在于routes/web.php中。先到先得。除了“测试”不是整数之外,一切看起来都很好。整数与否,路由和“测试”应该到达您的控制器。除非您在 routes/web.php 中使用正则表达式检查。
  • @AhmadKarimi 我没有收到任何错误。
  • @DimitriMostrey 这就是我的想法。无论参数如何,它都应该进入我的控制器,但它没有。
  • 能贴出控制器代码吗?

标签: laravel laravel-5 routing routes laravel-routing


【解决方案1】:

如下改变你的路由参数..

<form action="{{route('inventory.deduct', ['id'=>$itemid])}}" method="post">

OR

<form action="{{route('inventory.deduct', $itemid)}}" method="post">

两者都可以..

【讨论】:

    【解决方案2】:
     <form action="{{route('inventory.deduct', $itemid)}}" method="post">
    

    【讨论】:

      【解决方案3】:

      您更改了您的操作路线,因为您在路线中传递了参数。

      表格

       <form action="{{route('inventory.deduct',$collection->id)}}" method="post">
      
                  @csrf
                  <div class="modal-body">
                      Enter number of items to issue for:
                      <input type="text" name="itemname" id="itemname" class="form-control" readonly>
                      <input type="text" id="itemid" name="itemid" hidden>
                  </div>
                  <div class="modal-footer">
                      <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                      <button type="button" class="btn btn-primary">Save changes</button>
                  </div>
              </form>
      

      路线

      Route::post('inventory/{id}/deduct', 'InventoryController@deduct')
              ->name('inventory.deduct');
      

      希望对你有帮助。

      【讨论】:

        【解决方案4】:

        在您在 web.php 文件中调用的数组中传递 {id}['id'=>$itemid] 将其添加到您的表单路径中,因为在 web.php 文件中您需要 id,因此您需要在表单中传递它。

        <form action="{{ route('inventory.deduct',['id'=>$itemid]) }}" method="post">
        @csrf
        </form>
        

        web.php 是正确的。

        Route::post('inventory/{id}/deduct', 'InventoryController@deduct')
                ->name('inventory.deduct');
        

        【讨论】:

          猜你喜欢
          • 2018-11-20
          • 2019-10-23
          • 2019-09-11
          • 2020-03-20
          • 2019-07-19
          • 2013-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多