سلام
من یه کنترلر دارم به اسم DashboardController که چک میکنه اگه یوزر ادمین باشه میفرستتش پنل ادمین اگه نه میفرسته پنل یوزر ، بعد از این کنترلر یه فرزند به اسم AdministratorDashboardController و UserDashboardController دارم که صفحه مربوط به پنل کاربر خودشونو بر میگردونن ، کنترلر های ریسورس مربوط به ادمین هم از AdministratorDashboardController ارث بری میکنند ، یوزر هم به همین شکل ...
من الان مشکلم اینه که میخام چک کنم که اگه یوزر لاگین کرده ، اطلاعات مربوط به profile شو وارد نکرده باشه نتونه به پنل ادمین و تمام بخش هاش (که هر کدوم کنترلر ریسورس خودشونو دارن) دسترسی داشته باشه و مثلا ریدایرکت بشه به صفحه ساخت پروفایلش ، ولی میخوام بدونم راهی هست که تو تمام کنترلر های فرزند این قضیه چک بشه و من مجبور نباشم تو تک تک متود های کنترلر ریسورس و ... فراخوانیش کنم ؟؟؟؟؟
این کنترلر DashboardController
class DashboardController extends Controller
{
public function __construct()
{
$this->middleware(['auth:web']);
}
public function index()
{
if(Auth::check()){
if(Auth::user()->getUserType() == 'administrator') {
return redirect(route('administrator.dashboard'));
}
if(Auth::user()->getUserType() == 'user') {
return redirect(route('user.dashboard'));
}
}
return redirect(route('/'));
}
protected function checkUserHasProfile() {
if(Auth::check()) {
return Auth::user()->hasProfile();
}
return redirect(route('login'));
}
}
این کنترلر AdministratorDashboardController
class AdministratorDashboardController extends DashboardController
{
public function __construct() {
parent::__construct();
$this->middleware(['CheckAdministrator']);
}
public function index()
{
if(!$this->checkUserHasProfile()) {
return redirect(route('profiles.create'));
}
return view('administrator.index');
}
}شاید پاسخ شما همینجا باشد