【发布时间】:2020-07-06 15:52:55
【问题描述】:
我想知道是否有人可以提供有关如何在我的应用中实现页面可见性的任何智慧?在数据库中,我存储了visiblity,即"public" 或"private"
因此,如果该页面是私有的,则用户需要登录才能查看该页面,但如果该页面是公开的,则任何人都可以查看该页面。下面是我的路由和控制器的 sn-ps。
routes/web.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);
}
路由当前没有使用任何中间件。我的第一个想法是为其分配一个中间件,该中间件将在到达此路由时查询数据库(如果它是私有的,则强制进行身份验证),但我不想查询数据库两次。有没有办法将这个中间件的结果传递给控制器,或者有没有人对如何完成这个问题有任何其他建议?
【问题讨论】:
标签: laravel routes middleware