Laravel 5.8: 控制器的路由不能正常工作
Laravel 5.8: Controller's route doesn't work correctly
今天我遇到了一个 Laravel 项目 (Laravel 5.8) 的问题。我正在建立一个带有新闻板和一些子页面的内部网页。它是在我的机器上开发的。 Windows XAMP 环境 PHP 7.3.4
问题是我的 NewsController,
似乎没有正确地浏览页面。
网址:
内网.test/news/edit/
内网.test/news/123/
总是路由到错误的视图,我也不知道为什么。
routes/web.php:
Route::get('/', 'NewsController@index');
Route::resource('/news', 'NewsController');
Route::get('/arbeitsplaene', 'PageController@arbeitsplaene');
Route::get('/apothekenevents', 'PageController@apothekenevents');
Route::get('/kundentermine', 'PageController@kundentermine');
Route::get('/praktikantenbelegung', 'PageController@praktikantenbelegung');
Route::get('/addressbuch', 'PageController@addressbuch');
Route::get('/lieferbedingungen', 'PageController@lieferbedingungen');
Route::get('/qualitaetsmanagement', 'PageController@qualitaetsmanagement');
Route::get('/einekatzenseite', 'PageController@einekatzenseite');
Route::resource('/edvdokumentation', 'EdvdokuController');
Auth::routes();
Route::get('/dashboard', 'DashboardController@index');
新闻控制器:
public function edit($id)
{
$data['news'] = News::find($id);
return view('blade.pages.news-edit') -> with('data', $data);
}
intranet.test/news/create
路由到输入掩码并返回正确的视图 [ view('blade.pages.news-create') ]
intranet.test/news/123
路由到 post 123 的输出并且也使用右视图。
也许,这里有人可以帮助我!
如果你 运行 php artisan r:l --name=news
你应该得到名称包含 'news' 的所有路由(如果你更愿意按 uri 过滤,请改用 --path
)。
在那里,如果我没记错的话,你会注意到 EDIT 路由有这样的路径
news/{news}/edit
而不是
news/edit
谢谢,
你说的太对了!
当我在控制台中使用 "php artisan r:l --name=news" 检查路由时,我发现了我的问题。
1.) 我的 uri 错误! -> news/{news}/edit 而不是 news/edit
2.) news/edit 路由到 index 函数并且 "edit" 不是一个 id,所以显示 post 的 index-function 爆炸了。
非常感谢,抱歉浪费您的时间...
今天我遇到了一个 Laravel 项目 (Laravel 5.8) 的问题。我正在建立一个带有新闻板和一些子页面的内部网页。它是在我的机器上开发的。 Windows XAMP 环境 PHP 7.3.4
问题是我的 NewsController,
似乎没有正确地浏览页面。
网址:
内网.test/news/edit/
内网.test/news/123/
总是路由到错误的视图,我也不知道为什么。
routes/web.php:
Route::get('/', 'NewsController@index');
Route::resource('/news', 'NewsController');
Route::get('/arbeitsplaene', 'PageController@arbeitsplaene');
Route::get('/apothekenevents', 'PageController@apothekenevents');
Route::get('/kundentermine', 'PageController@kundentermine');
Route::get('/praktikantenbelegung', 'PageController@praktikantenbelegung');
Route::get('/addressbuch', 'PageController@addressbuch');
Route::get('/lieferbedingungen', 'PageController@lieferbedingungen');
Route::get('/qualitaetsmanagement', 'PageController@qualitaetsmanagement');
Route::get('/einekatzenseite', 'PageController@einekatzenseite');
Route::resource('/edvdokumentation', 'EdvdokuController');
Auth::routes();
Route::get('/dashboard', 'DashboardController@index');
新闻控制器:
public function edit($id)
{
$data['news'] = News::find($id);
return view('blade.pages.news-edit') -> with('data', $data);
}
intranet.test/news/create
路由到输入掩码并返回正确的视图 [ view('blade.pages.news-create') ]
intranet.test/news/123
路由到 post 123 的输出并且也使用右视图。
也许,这里有人可以帮助我!
如果你 运行 php artisan r:l --name=news
你应该得到名称包含 'news' 的所有路由(如果你更愿意按 uri 过滤,请改用 --path
)。
在那里,如果我没记错的话,你会注意到 EDIT 路由有这样的路径
news/{news}/edit
而不是
news/edit
谢谢,
你说的太对了!
当我在控制台中使用 "php artisan r:l --name=news" 检查路由时,我发现了我的问题。
1.) 我的 uri 错误! -> news/{news}/edit 而不是 news/edit
2.) news/edit 路由到 index 函数并且 "edit" 不是一个 id,所以显示 post 的 index-function 爆炸了。
非常感谢,抱歉浪费您的时间...