在 Laravel 框架 6.18.35 中,我使用“nwidart/laravel-modules”:“^7.2”,并且在定义路由中写入的方法时出错。
在 Modules/Pages/Routes/web.php 我有:
Route::prefix('pages')->group(function() {
Route::get('/', 'PagesController@index');
Route::resource('/admin/page_types', 'Admin\PageTypesController');
});
它使用以下方法引用控制器 Modules/Pages/Http/Controllers/Admin/PageTypesController.php:
class PageTypesController extends Controller
{
public function index()
{
\Log::info( '-1 PageTypesController index ::' . print_r( -1, true ) );
return view('pages::admin.page_types.index');
}
使用模板 Modules/Pages/Resources/views/admin/page_types/index.blade.php,它具有参考:
<div class="col-12 col-sm-6 mb-3 mt-1 pl-2">
<input type="submit" class="btn btn-primary" value="Search" onclick="javascript:backendPageType.runSearch(oTable); return false;" id="btn_run_search">
<a onclick="javascript:document.location='{{ route('pages.admin.page_types.create') }}'" class="a_link">
<small> ( Add )</small>
</a>
</div>
这引发错误:
Route [pages.admin.page_types.create] not defined. (View: /mnt/_work_sdb8/wwwroot/lar/lar6/Modules/Pages/Resources/views/admin/page_types/index.blade.php)
我尝试了几种设置路线的方法,但都失败了。
修改#2: 我看到路线:
php artisan route:list
Modules\Pages\Http\Controllers\PagesController@index | web |
| | GET|HEAD | pages/admin/{admin}/page_types | admin.page_types.index | Modules\Pages\Http\Controllers\Admin\PageTypesController@index | web |
| | POST | pages/admin/{admin}/page_types | admin.page_types.store | Modules\Pages\Http\Controllers\Admin\PageTypesController@store | web |
| | GET|HEAD | pages/admin/{admin}/page_types/create | admin.page_types.create | Modules\Pages\Http\Controllers\Admin\PageTypesController@create | web |
| | GET|HEAD | pages/admin/{admin}/page_types/{page_type} | admin.page_types.show | Modules\Pages\Http\Controllers\Admin\PageTypesController@show | web |
| | PUT|PATCH | pages/admin/{admin}/page_types/{page_type} | admin.page_types.update | Modules\Pages\Http\Controllers\Admin\PageTypesController@update | web |
| | DELETE | pages/admin/{admin}/page_types/{page_type} | admin.page_types.destroy | Modules\Pages\Http\Controllers\Admin\PageTypesController@destroy | web |
| | GET|HEAD | pages/admin/{admin}/page_types/{page_type}/edit | admin.page_types.edit | Modules\Pages\Http\Controllers\Admin\PageTypesController@edit | web |
我想知道为什么有这么多 "{admin}/" ?Modules/Pages/Routes/web.php 中的内容:
Route::prefix('pages')->group(function() {
Route::get('/', 'PagesController@index');
Route::resource('admin.page_types', 'Admin\PageTypesController');
});
哪个是正确的语法?
谢谢!