我正在学习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是一个方法?
答案 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]);