laravel路由及控制器的问题?

 public function index(Request $request)
    {
        $grade = $request->get('grade');
        $data = $this->dispatch(new Article_systemIndexData($grade));
        $layout = $grade ? Grade::layout($grade) : 'article_system.layouts.index';

        return view($layout, $data);

    }

上段代码为控制器的一个代码片段,问题是在这里的view函数下面没有明确的写出写出具体要跳转到的视图,而只是给出了需要传递给视图的两个参数,

 public function index()
    {
        $posts = Post::where('published_at', '<=', Carbon::now())
                ->orderBy('published_at', 'desc')
                ->paginate(config('blog.posts_per_page'));

        return view('blog.index', compact('posts'));
    }

不像这段代码,控制器明确了就是要跳转到blog.index视图,请问第一段代码这种view的使用方式是在哪里确定了参数传递的视图??

阅读 2.4k
2 个回答

你把$layout打印出来就是view的路径。实际是一样的。

第一段代码是根据传的参数确定返回什么样的视图啊。要么是这个article_system.layouts.index 要么是这个 视图Grade::layout($grade)你打印下。
让我们来猜想一下第一段的作用:页面放置灰色背景的按钮,用户点了按钮就带grade参数,返回灰色背景的样式。否则返回默认 背景色样式的视图。很简单呀~~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题