【问题标题】:Laravel Update RouteLaravel 更新路线
【发布时间】:2017-02-16 09:47:26
【问题描述】:

这里是 Laravel 新手,我想在 Laravel 中创建一个更新路由,没有资源控制器。 我有编辑路线

Route::get('/indexedit','PagesController@indexedit')->middleware('user');

在里面,有一个表格如下

<form class="col s12" method="POST" action="indexedit/{{ $val->id }}" >
{{ method_field('PUT') }}
{{ csrf_field() }}

有两个输入字段和一个提交按钮。我为更新创建了一条路线

Route::post('indexedit/{$id}', 'PagesController@update');

但是当我提交时,它说找不到路线。 RouteCollection.php 第 161 行中的 NotFoundHttpException:

【问题讨论】:

  • Route::any('/indexedit/{id}', 'PagesController@update');试试看..
  • 刚刚试了,还是一样。

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

首先,您的路线不需要 $ 登录 (Documentation):

Route::post('indexedit/{id}', 'PagesController@update');

其次,我会在 url() 方法中包装操作 url,以防万一:

<form class="col s12" method="POST" action="{{ url('indexedit/ ' . $val->id }}" >

【讨论】:

  • 错误是路由中的$符号,但我也会使用url()方法。
  • 是的,我知道,但恕我直言,用这种方法包装所有 url 是个好习惯:)
【解决方案2】:

您应该使用更新死记硬背中的put,而不是post

这不行:

Route::post('indexedit/{id}', 'PagesController@update');

使用这个:

Route::put('indexedit/{id}', 'PagesController@update');

【讨论】:

  • 为什么要使用 put 而不是 post 进行更新?我正在学习 Laravel,但不确定其中的原因。
猜你喜欢
  • 1970-01-01
  • 2023-03-15
  • 2017-01-27
  • 2020-06-10
  • 2021-02-22
  • 2018-09-25
  • 2015-09-20
  • 1970-01-01
  • 2012-11-16
相关资源
最近更新 更多