Laravel - 即使路线存在也找不到页面

Posted

技术标签:

【中文标题】Laravel - 即使路线存在也找不到页面【英文标题】:Laravel - Page not found even that the Route exists 【发布时间】:2018-12-04 02:25:12 【问题描述】:

我有这条路线:

Route::get('/dashboard/tags/edit/tag','UsersController@editTagIndex');

这是我的表单操作: action="/dashboard/tags/edit/$tag->id" method="get"

它让我找不到页面,因为没有路线!

我试过了:php artisan route:list

并且路线存在

没有意义的是我有另一条路线:

Route::get('/dashboard/posts/edit/post','UsersController@editPostIndex');

而且效果很好

【问题讨论】:

您能解释一下为什么要使用 get 进行表单操作吗?为什么没有单独的帖子和标签控制器? 查看页面源中的URL @DouwedeHaan 我将一个控制器用于管理员 我现在只是将其命名为 UsersController,稍后我将对其进行更改,并在此处更改 get 方法,因为我使用与此页面相同的 URL 的 post 方法应该调用的路线 @DouwedeHaan 我刚开始学习 php 和 laravel 就像 5 天前一样 @DsRaj 其他每条路线都可以正常工作,但这条路线是问题,我有另一条路线,我从它那里复制了这条路线,它工作正常 【参考方案1】:

您好,也许这可以解决问题:

action=" action('UsersController@editTagIndex', [tag => $tag_id]) "

祝你好运

【讨论】:

找不到相同的问题页面 你确定你的控制器上存在editTagIndex函数吗! 提交表单后得到的url是什么? http://127.0.0.1:8000/dashboard/tags/edit/7?_token=nMQUrgiZhNW53EjvKzYAOFJ3L5oHKlvKWZKPIYws 再想一想,试着把你的路线Route::get('/dashboard/tags/edit/tag','UsersController@editTagIndex');放在你的route.php文件的第一个位置【参考方案2】:

也许这应该是一个发布请求,因为您正在提交一个编辑功能。

【讨论】:

找不到相同的页面 感谢您尝试帮助我自己修复了它:)【参考方案3】:

问题是我的标签模型中有这个功能

public function getRouteKeyName()

    return 'name';

所以不要在表单操作中传递 $tag->id

我通过了 $tag->name

感谢大家的帮助

【讨论】:

以上是关于Laravel - 即使路线存在也找不到页面的主要内容,如果未能解决你的问题,请参考以下文章

即使存在也找不到 Composer 类

即使文件存在,Composer 也找不到 composer.json 文件

即使存在,诗歌也找不到依赖的版本

JasperException - 即使存在标签也找不到文件

CSS 模块在 Codesandbox 中不起作用 - 即使它们存在也找不到文件

即使已安装 Composer 也找不到 ext-mbstring