[英]Laravel route not defined error when it is clearly defined
我正在尝试使用 laravel 处理基本表单,并且遇到了一个问题,即未检测到我的 POST 路由并导致刀片模板中出现路由未定义错误。 我的目标是解决此错误并将表单发布到控制器,然后使用 $request 参数访问各种表单字段。
这是错误: Route [become-a-customer] not defined.
我感谢有关如何解决此问题的任何建议。
形式
<form action="{{ route('become-a-customer') }}" method="post" class="col-md-8 offset-md-2">
<div class="form-row">
<div class="form-group col-md-6">
<label for="first_name">First Name</label>
<input name="last_name" type="email" class="form-control" id="first_name" placeholder="First Name">
</div>
...
</div>
<input type="hidden" name="_token " value="{{ Session::token() }}"/>
<button type="submit" class="btn">SUBMIT</button>
</form>
网页.php
Route::post('/become-a-customer', 'BecomeACustomerFormController@postBecomeACustomer');
成为客户控制器。 php
class BecomeACustomerFormController extends Controller
{
public function postBecomeACustomer(Request $request)
{
$firstName = $request['first_name'];
$lastName = $request['last_name'];
...
...
return redirect()->back();
}
}
Route::post('/become-a-customer', 'BecomeACustomerFormController@postBecomeACustomer')->name('become-a-customer');
在您的刀片模板中,您已将命名路由用于表单操作,但未在路由文件 (Web.php) 中指定。
像这样更改您的路由文件
Route::post('/become-a-customer', 'BecomeACustomerFormController@postBecomeACustomer')->name('become-a-customer');
或者,您必须像这样更改表单操作
action="{{ url('become-a-customer') }}"
使用命名路由是 Laravel 项目的最佳实践。
您还可以定义如下,其中“as”键用于命名您的路线
Route::post('/become-a-customer', ['uses' => 'BecomeACustomerFormController@postBecomeACustomer', 'as' => 'become-a-customer']);
检查您的 Apache 或 Nginx 配置。 有时,从 https 重定向到 http 会将方法从 POST 更改为 GET。
我建议通过相同的 Route 为 GET 设置一个临时端点,并在其中放置一个dd()
语句来测试理论。
route()
方法使用未定义的路由名称。 您可以通过路线上的name()
方法定义它,如下所示
Route::post('/become-a-customer', 'BecomeACustomerFormController@postBecomeACustomer')->name('become-a-customer');
有关更多信息,请参阅文档
对我来说url('routeName')
代替了route('routeName')
使用这个命令
php artisan optimize
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.