Как я могу добавить поддомен в Laravel Backpack панели администратора (backpackforlaravel)?
Как я могу добавить поддомен в Laravel Backpack панели администратора? Я хочу добавить поддомен в свою административную панель Laravel Backpack, мне нужно указать поддомен admin.example.com на административную панель Laravel Backpack. Laravel Backpack предоставляет префикс маршрута для панели администратора.
Я хочу использовать один и тот же исходный код проекта для сайта, администратора и API.
admin.example.com -> Администратор
api.example.com -> API
www.example.com -> Сайт
2 ответа
Вы можете заставить Laravel Backpack работать под субдоменом, например admin.app.local, вместо префикса (например, app.local/admin) следующим образом:
В файле.env вы можете определить поддомен администратора, что будет полезно, если вы работаете в разных средах, где он меняется:
ADMIN_SUBDOMAIN = admin.app.local
При желании вы также можете определить в config / app.php, будет ли админ использовать поддомен, добавив:
'use_admin_subdomain' => true,
Затем в файле config/backpack/base.php вы захотите прекратить использование префикса маршрута администратора, так как вы будете использовать admin в поддомене, поэтому вы должны определить:
'route_prefix' => '',
Затем в routes/backpack/custom.php вы сможете включить все маршруты в новую группу, которая определит, работает ли админский рюкзак под субдоменом (определенным в app.use_admin_subdomain) и субдоменом (определенным в env('ADMIN_SUBDOMAIN'), и все исходные маршруты и группы войдут в:
Route::group (
config('app.use_admin_subdomain') ? ['domain' => env('ADMIN_SUBDOMAIN')]: []
, function () {
... original backpack routes
});
При желании в том же файле маршрутов рюкзака вы можете удалить префикс исходных маршрутов, добавив:
'prefix' => config ('backpack.base.route_prefix', 'admin'),
Хотя пустота в config/backpack/base.php еще не действует без комментариев.
Вы можете выполнить ту же процедуру, чтобы определить свои маршруты API в поддомене api.app.local, в этом случае в файле routes/api.php.
Для тех, кто также хочет использовать базовые маршруты Backpack на поддомене (Lara: 8.0, Backpack: 4.1):
- Изменить настройки в вашем
config/backpack/base.php
как показано ниже:
'route_prefix' => '',
'setup_auth_routes' => false,
'setup_password_recovery_routes' => false,
'setup_dashboard_routes' => false,
'setup_my_account_routes' => false,
- Копировать маршруты из
vendor/backpack/crud/src/routes/backpack/base.php
на вашroutes/web.php
или там, где вам это нужно. В моем случае:
Route::domain('admin.' . env('APP_DOMAIN'))->middleware(config('backpack.base.web_middleware'))->group(function () {
// Base routes
Route::namespace('Backpack\CRUD\app\Http\Controllers')->group(function () {
Route::get('dashboard', 'AdminController@dashboard')->name('backpack.dashboard');
Route::get('/', 'AdminController@redirect')->name('backpack');
// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('backpack.auth.login');
Route::post('login', 'Auth\LoginController@login');
Route::get('logout', 'Auth\LoginController@logout')->name('backpack.auth.logout');
Route::post('logout', 'Auth\LoginController@logout');
// Registration Routes...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('backpack.auth.register');
Route::post('register', 'Auth\RegisterController@register');
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('backpack.auth.password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('backpack.auth.password.reset.token');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('backpack.auth.password.email');
Route::get('edit-account-info', 'MyAccountController@getAccountInfoForm')->name('backpack.account.info');
Route::post('edit-account-info', 'MyAccountController@postAccountInfoForm')->name('backpack.account.info.store');
Route::post('change-password', 'MyAccountController@postChangePasswordForm')->name('backpack.account.password');
});
// Custom CRUD routes
Route::namespace('App\Http\Controllers\Admin')->group(function () {
Route::crud('user', 'UserCrudController');
});
});
! Не забудьте удалить исходный файл
if
заявления