我的路线有问题,我有路线:
Route::get('dashboard/password', 'UserController@password');
Route::post('dashboard/updatepassword', 'UserController@updatePassword');
// PAGINA UTENTE PUBBLICA
Route::get('/{username}', 'FrontController@user');
// blog routes
Route::get('blog', 'FrontController@blog');
Route::get('blog/{slug}', 'FrontController@article');
Route::get('blog/category/{name}', 'FrontController@BlogCategory');
Route::get('blog/tag/{name}', 'FrontController@tags');
Route::resource('comment', 'CommentController');
和我的FrontController:
public function blog()
{
$articles = Article::OrderBy('id','DESC')->paginate(3);
$Allarticles = Article::OrderBy('id','DESC')->get();
$Allcategories = BlogCategory::OrderBy('id','DESC')->get();
$Alltags = Tag::OrderBy('id','DESC')->get();
$Allcomments = Comment::OrderBy('id','DESC')->take(3)->get();
return view('blog', compact('articles','Alltags','Allarticles','Allcategories','Allcomments'));
}
如果我去" http://localhost:8000/blog"它回到我以前的页面。类似于route-> back()。
我不知道为什么我有这个问题,其他博客路线运作良好。
我做了一些这样的测试:
public function blog()
{
return "Hi";
}
它没有返回"嗨",所以我认为这是路线的问题。我这里没有可用的中间件,我的博客/文章等其他路线运行良好。
答案 0 :(得分:1)
您可以发布路线文件的内容吗?
如果'blog'
的任何路线高于您发布的包含参数的路线(例如Route::get('blog/{blog_post_id}, ...
),请尝试将其移至文件中的'blog'
下方。
如果不是上述内容那么听起来可能会有一些缓存在玩耍的东西,当我正在运行我的优化以查看生产环境将如何执行并且我忘记时,它通常会抓住我清除所有的缓存,这是我通常的修复(我有别名,因为我经常弄乱这个);
php artisan route:clear
php artisan view:clear
php artisan cache:clear (Side note, clears all auth sessions, will require a re-log)
composer dump-autoload
php artisan optimize --force
这将完全清除为路由,视图和授权创建的所有缓存。
同时检查您的Laravel日志和Apache / NginX日志,总是值得一看
答案 1 :(得分:0)
好的我修好了,问题是:
Route::get('/{username}', 'FrontController@user');
这里有一些错误,我不知道错误,也许是路径,我删除了它,它正常工作。
答案 2 :(得分:0)
您的问题是路线文件中的模式匹配。似乎将路由分配给与URI匹配的第一个路由。
Route::get('/{username}', 'FrontController@user');
Route::get('blog', 'FrontController@blog');
http://localhost:8000/blog
会匹配这两条路线,因为{username}
可能是blog
,因此始终会使用Route::get('/{username}', 'FrontController@user');
。
您必须在路线名称中更具体(例如,添加更多文字)或更具体的路线顺序。以下是您想要的当前路线的示例。
Route::get('dashboard/password', 'UserController@password');
Route::post('dashboard/updatepassword', 'UserController@updatePassword');
// blog routes
Route::get('blog', 'FrontController@blog');
Route::get('blog/{slug}', 'FrontController@article');
Route::get('blog/category/{name}', 'FrontController@BlogCategory');
Route::get('blog/tag/{name}', 'FrontController@tags');
Route::resource('comment', 'CommentController');
// PAGINA UTENTE PUBBLICA
Route::get('{username}', 'FrontController@user');