我怎么能这样做,所以我的方法可以具有与View :: make()相同的功能,以便我可以使用 - > with()在View类中?

时间:2014-12-10 02:29:22

标签: php laravel

我正在学习Laravel,有一些事情对我来说并不清楚。

我已经向BaseController类添加了一个方法,它将处理我的ajax请求。

public function ajaxView($page) {
    $view = View::make($page);

    if(Request::ajax()) {
        $sections = $view->renderSections(); // returns an associative array of 'content', 'head' and 'footer'
        return $sections['content']; // this will only return whats in the content section
    }

    return $view; // just a regular request so return the whole view
}

我有一个扩展BaseController的ProfileController,我有以下代码:

return View::make('profile.user')
    ->with('user', $user);

我想将其更改为:

return parent::ajaxView('profile.user')
    ->with('user', $user);

我怎么能这样做,所以我的ajaxView方法具有与View :: make()相同的功能,这样我就可以使用 - > with()?有没有办法扩展它,即使ajaxView是一个方法?

1 个答案:

答案 0 :(得分:1)

您可以将数据作为数组传递,而不是使用with

public function ajaxView($page, $data = [])
{
    $view = View::make($page, $data);

    if (Request::ajax())
    {
        $sections = $view->renderSections();

        return $sections['content'];
    }

    return $view;
}

然后在您的ProfileController传递数据中

return $this->ajaxView('profile.user', ['user' => $user]);