限制控制器的某些页面

时间:2015-03-23 21:22:58

标签: php laravel laravel-5

我正在使用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;

显示用户的姓名等

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题 你可以这样做

$this->middleware('auth',['except'=>['index','show']]);