【发布时间】:2021-07-27 23:22:33
【问题描述】:
我正在将 Laravel 5.4 更新到 Laravel 8,到目前为止一切都“顺利”,这很耗时,但升级值得。
我的问题是我对Backpack不是很了解,而且升级幅度很大。
我现在坚持使用新的路由语法,其中处理路由自定义的 CRUD::resource 外观不再可用。
以下“简化”自定义路由文件的正确方法是什么。 (我删除了我已经想到的所有内容)
Route::group([
'prefix' => config('backpack.base.route_prefix', 'admin'),
'middleware' => [
'web',
config('backpack.base.middleware_key', 'admin'),
],
'namespace' => 'App\Http\Controllers\Admin',
], function() { // custom admin routes
Route::get('report', function() {
$clients = ClientWithSubscription::get();
$clientsT = transformer()->transform($clients);
return view('clients')->withClients($clientsT['data']);
});
// Client
CRUD::resource('client', 'ClientCrudController');
Route::group(['prefix' => 'client/{client_id}'], function() {
CRUD::resource('address', 'ClientAddressCrudController');
CRUD::resource('subscription', 'ClientSubscriptionCrudController');
});
// Taxonomy
foreach (['theme', 'tag', 'subject', 'utility', 'document_type', 'special_need', 'level', 'platform', 'other', 'shop',] as $taxonomy) {
CRUD::resource('taxonomy/' . $taxonomy, 'TaxonomyCrudController');
}
// Items
CRUD::resource('item/document', 'ItemDocumentCrudController');
// Referrals
CRUD::resource('referrals', 'ReferralCrudController')->with(function() {
Route::post('referrals/mark-paid/{id?}', 'ReferralCrudController@markPaid');
Route::post('referrals/mark-unpaid/{id?}', 'ReferralCrudController@markUnpaid');
Route::post('referrals/edit-notes/{id}', 'ReferralCrudController@editNotes');
});
});
我的问题是
- 如何为所有 crud 路由添加前缀?
- 如果 CrudController 使用默认路由,那意味着我根本不需要声明它,Backpack 会处理它?
- 如何向 CRUD Route 添加自定义方法?
谢谢!
【问题讨论】: