我正在使用Laravel 5,我希望允许访客查看某些页面,或者让公众在控制器中查看。
它的工作方式如下:每个用户都可以注册并创建少量帖子。主页将显示所有用户的所有帖子。所以PostController
会有类似的内容:
public function __construct(Post $post, User $user)
{
$this->middleware('auth');
$this->post = $post;
$this->user = $user;
}
public function index()
{
$posts = \Auth::user()->posts;
return view('posts.index', compact('posts'));
}
public function show($id)
{
//return "Post Listing";
$post = $this->post->where('id', $id)->first();
return view('posts.show', compact('post'));
}
我可以继续列出create
函数以及更多功能,但我希望普通大众能够看到show
函数或显示页面而无需注册。这是可能的还是我必须重新设计应用程序?
应用程序已设置,登录后,用户可以在单独的页面上查看自己的帖子。但无论登录与否,主页都会显示所有帖子。
我可以使用类似$posts = $this->post->orderBy('id', 'DESC')->get();
的内容来显示所有帖子,但效果不佳。
*** **** EDIT
我需要用$posts = \Auth::user()->posts;
答案 0 :(得分:0)
如果我正确理解你的问题 你可以这样做
$this->middleware('auth',['except'=>['index','show']]);