我在 laravel 的路线有问题
I am having trouble with my route in laravel
将参数放在路由组前缀中是否不好,因为在某些页面中我会遇到非对象错误。对于大多数页面,它都有效,但似乎不适用于 Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
Auth::routes(['register' => false,'login' => false]);
Route::prefix('admin')->group(function() {
Route::get('/')->name('login')->uses('Auth\LoginController@showLoginForm');
Route::post('/')->name('login')->uses('Auth\LoginController@login');
Route::get('/dashboard', 'AdminVisible\HomeController@index')->name('admin.dashboard');
Route::prefix('pages')->group(function() {
Route::get('/','AdminVisible\AdminPageController@pages')->name('pages');
Route::prefix('{page}')->group(function() {
Route::get('/','AdminVisible\AdminPageController@index')->name('page');
Route::get('/banner', 'AdminVisible\BannerController@index');
Route::get('/why-with-us', 'AdminVisible\WhyWithUsController@index');
Route::get('/testimonials', 'AdminVisible\TestimonialsController@index');
Route::get('/about', 'AdminVisible\AboutController@index');
Route::get('/about-why-with-us', 'AdminVisible\AboutWhyWithUsController@index');
Route::get('/general-information', 'AdminVisible\PackageController@index');
Route::get('/package-program', 'AdminVisible\PackageController@index');
Route::prefix('cost-include')->group(function() {
Route::get('/', 'AdminVisible\PackageController@index');
Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
});
});
});
});
我的 AdminPageController:
public function index($page)
{
$page = Page::where('Pages_Slug_Name',$page)->firstorFail();
$pages = Page::all();
return view('admin.pages.page',[
'page' => $page,
],compact('pages'));
}
我的 CostIncludeController:
public function index($categories){
$pages = Page::all();
$packages = Package::where('slug',$categories)->first();
return view('admin.pages.costinclude',[
'packages' => $packages,
],compact('pages'));
}
带有 {page} 前缀:我认为这个错误意味着该页面不存在但它存在。
如果移除 {page} 前缀:
page 和 categories 参数都传递给了你的函数,但是你在 CostIncludeController 中的索引只有 $类别,所以
public function index($categories){
应该是
public function index($page, $categories){
由于 pages 是要传递的第一个参数,您必须确保它也是第一个参数。 index($categories, $page)
也是错误的。
将参数放在路由组前缀中是否不好,因为在某些页面中我会遇到非对象错误。对于大多数页面,它都有效,但似乎不适用于 Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
Auth::routes(['register' => false,'login' => false]);
Route::prefix('admin')->group(function() {
Route::get('/')->name('login')->uses('Auth\LoginController@showLoginForm');
Route::post('/')->name('login')->uses('Auth\LoginController@login');
Route::get('/dashboard', 'AdminVisible\HomeController@index')->name('admin.dashboard');
Route::prefix('pages')->group(function() {
Route::get('/','AdminVisible\AdminPageController@pages')->name('pages');
Route::prefix('{page}')->group(function() {
Route::get('/','AdminVisible\AdminPageController@index')->name('page');
Route::get('/banner', 'AdminVisible\BannerController@index');
Route::get('/why-with-us', 'AdminVisible\WhyWithUsController@index');
Route::get('/testimonials', 'AdminVisible\TestimonialsController@index');
Route::get('/about', 'AdminVisible\AboutController@index');
Route::get('/about-why-with-us', 'AdminVisible\AboutWhyWithUsController@index');
Route::get('/general-information', 'AdminVisible\PackageController@index');
Route::get('/package-program', 'AdminVisible\PackageController@index');
Route::prefix('cost-include')->group(function() {
Route::get('/', 'AdminVisible\PackageController@index');
Route::get('/{categories}', 'AdminVisible\CostIncludeController@index');
});
});
});
});
我的 AdminPageController:
public function index($page)
{
$page = Page::where('Pages_Slug_Name',$page)->firstorFail();
$pages = Page::all();
return view('admin.pages.page',[
'page' => $page,
],compact('pages'));
}
我的 CostIncludeController:
public function index($categories){
$pages = Page::all();
$packages = Package::where('slug',$categories)->first();
return view('admin.pages.costinclude',[
'packages' => $packages,
],compact('pages'));
}
带有 {page} 前缀:我认为这个错误意味着该页面不存在但它存在。
page 和 categories 参数都传递给了你的函数,但是你在 CostIncludeController 中的索引只有 $类别,所以
public function index($categories){
应该是
public function index($page, $categories){
由于 pages 是要传递的第一个参数,您必须确保它也是第一个参数。 index($categories, $page)
也是错误的。