当明确定义路线时,Laravel“未定义路线”

时间:2018-07-30 14:57:15

标签: laravel authentication routes

我正在重新注册我的网站,并制作了一个包含电子邮件,密码等的表格:

<form method="POST" class="etc" action="{{ route('register/blade/create') }}">
...
</form>

然后,当然,我在表单中的“提交”按钮会从 web.php 中的路由中提交它:

Route::post('/register/basic/create', 'RegisterController@create');

但是,每次加载此页面时,都会出现以下错误:

enter image description here

我尝试追随那些在栈溢出上发布过类似问题的人,创建了一个命名路由,但这似乎也没有成功。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

有时,当您有两条具有相同 uri 但具有不同的回调和具有不同的路由名称

的路由时,会发生上述错误

例如

Route::post('update','PermissionController@update')->name('update_permission');`

Route::post('update','RoleController@update')->name('update_role');

以上路由更新了不同的资源,但仍将返回错误的路由update_permission未定义或路由update_role未定义。

所以最好的做法是在每个路线中使用不同的uri,以防止发生此类冲突

Route::post('/role_permission/update','RoleController@update')->name('update_role');`

Route::post('/permission/update','PermissionController@update')->name('update_permission');

答案 1 :(得分:2)

使用命名路由route时,必须在routes/web.php文件中指定路由名称。像这样

routes / web.php

Route::post('/register/basic/create', 'RegisterController@create')->name('register');

刀片文件中

<form method="POST" class="etc" action="{{ route('register') }}">
...
</form>

在此处https://laravel.com/docs/5.6/routing#named-routes

查看详细信息

答案 2 :(得分:0)

如果仍然无法正常工作并且您仔细检查了每件事,那么您可能已经兑现了路线,因此路线很清晰

<块引用>

php artisan route:clear