【发布时间】:2020-09-30 04:21:17
【问题描述】:
我已经安装了 adminlte https://github.com/jeroennoten/Laravel-AdminLTE/wiki ,并且之前在登录 '/beranda' 后设置了默认 url。但是,当我尝试将其恢复为“/ home”的原始 url 时,它不起作用。网址仍然指向“beranda”。怎么改?
我试过这个:
composer dump-autoload
php artisan cache:clear
php artisan config:cache
php artisan route:cache
config/adminlte.php
'use_route_url' => false,
'dashboard_url' => 'home',
'logout_url' => 'logout',
'login_url' => 'login',
'register_url' => 'register',
'password_reset_url' => 'password/reset',
'password_email_url' => 'password/email',
'profile_url' => false,
Auth/LoginController.php
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
Providers/RouteServiceProvider.php
public const HOME = '/home';
Providers/AuthServiceProvider.php
public function boot()
{
$this->registerPolicies();
Gate::define('isAdmin', function ($user) {
return $user->role == 'admin';
});
Gate::define('isMember', function ($user) {
return $user->role == 'member';
});
}
路线
Auth::routes();
Route::get('/', [HomeController::class, 'index']);
Route::get('/beranda', [BerandaController::class, 'index'])
->middleware('can:isMember')
->name('beranda');
Route::get('/booking', [BookingController::class, 'index'])
->middleware('can:isMember')
->name('booking');
Route::get('/invoice', [InvoiceController::class, 'index'])
->middleware('can:isMember')
->name('invoice');
Route::get('/trip', [TripController::class, 'index'])
->middleware('can:isMember')
->name('trip');
Route::get('/setting', [SettingController::class, 'index']);
Route::get('/home', function () {
return view('home');
})->name('home')->middleware('auth');
Route::get('/admin/beranda', [AdminBerandaController::class, 'index'])
->middleware('can:isAdmin')
->name('adminBeranda');
【问题讨论】:
-
尝试更改受保护的 $redirectTo = RouteServiceProvider::HOME;到 >>> 受保护 $redirectTo = /home;在 Auth/LoginController.php
-
还是不行。继续指向/beranda
-
也许尝试运行
php artisan cache:clear? -
另外,可能不是因果关系,但您的许多路线似乎使用
->name('member'),我不认为这是有效的,每条路线的名称应该是唯一的。 -
@WesleySmith 感谢您的纠正,我已经改进了我的问题。但仍然无法正常工作。总是指向/beranda。我想重新安装它,但我需要在不重新安装 auth 和 adminlte 的情况下找到最佳解决方案