Мне было интересно, может ли кто-нибудь рассказать о том, как сделать sh видимость страницы в моем приложении? В базе данных я храню visiblity
, который либо "public"
, либо "private"
Так что, если страница является закрытой, пользователю необходимо войти в систему, чтобы увидеть страницу, но если страница Это опубликовано c, то любой может просмотреть страницу. Ниже приведены фрагменты моего маршрута и контроллера.
маршрутов / веб. php
Route::get('/{slug}', '\App\Http\Controllers\Frontend\FrontendPagesController@page');
Метод страницы в FrontendPagesController
public function page($slug){
$page = Page::where('slug',$slug)->where('active',1)->get()->first();
if(is_null($page)){
return abort(404);
}
$this->data['page'] = $page;
return view('pages.page',$this->data);
}
В настоящее время маршрут не использует промежуточное ПО. Моей первой мыслью было назначить ему промежуточное программное обеспечение, которое будет запрашивать базу данных при попадании на этот маршрут (для принудительной аутентификации, если она была закрытой), но я не хотел запрашивать базу данных дважды. Есть ли способ передать результаты этого промежуточного программного обеспечения контроллеру, или у кого-нибудь есть другие предложения о том, как решить эту проблему?