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

Vra*_*nvs 8 authentication routes laravel

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

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

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

Route::post('/register/basic/create', 'RegisterController@create');
Run Code Online (Sandbox Code Playgroud)

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

在此处输入图片说明

我尝试关注其他在堆栈溢出时遇到类似问题的人,创建了一个命名路由,但这似乎也不起作用。任何帮助表示赞赏。

rkj*_*rkj 6

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

路线/ web.php

Route::post('/register/basic/create', 'RegisterController@create')->name('register');
Run Code Online (Sandbox Code Playgroud)

在刀片文件中

<form method="POST" class="etc" action="{{ route('register') }}">
...
</form>
Run Code Online (Sandbox Code Playgroud)

在此处查看详细信息https://laravel.com/docs/5.6/routing#named-routes


Nel*_*ale 6

有时,当您有两个具有相同uri回调不同且路由名称不同的路由时,会出现上述错误

例如

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

Route::post('update','RoleController@update')->name('update_role');
Run Code Online (Sandbox Code Playgroud)

上述路由更新了不同的资源,但仍然会返回错误“Route update_permissionnot Defined”或“Route update_rolenot Defined”。

所以最好的办法是在每个路由中使用不同的uri,以防止这样的冲突

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

Route::post('/permission/update','PermissionController@update')->name('update_permission');
Run Code Online (Sandbox Code Playgroud)


小智 5

你可以使用这个命令

php artisan optimize
Run Code Online (Sandbox Code Playgroud)