【发布时间】:2013-11-29 05:49:33
【问题描述】:
我正在尝试使用 Request::ajax() 方法从我的控制器生成特定于 ajax 的响应,该方法运行良好。唯一的问题是我现在设置它的方式并不是一个很好看的解决方案。
我的控制器:
class HomeController extends BaseController {
protected $layout = 'layouts/main';
public function __construct()
{
$this->beforeFilter('auth');
}
public function getIndex()
{
$view = View::make('content.home.index');
if(Request::ajax()) return $view; //For ajax calls we only want to return the content to be placed inside our container, without the layout
$this->layout->menu = 'content.menu';
$this->layout->content = $view;
}
}
所以现在,对于我在控制器中定义的每个方法,我都需要添加代码 sn-p 来检查 AJAX 请求并在语句返回 true 时返回单个视图。
这导致我的问题可能更多地与 PHP 相关,而不是与框架相关;
有没有一种方法可以对每个方法调用执行 AJAX 检查,而无需实际将其放入方法中?还是有其他解决方案可以让我的代码保持干燥?
提前致谢!
PS:这是我在stackoverflow上的第一篇文章,如果我犯了任何错误,请随时纠正我
【问题讨论】:
-
我会为该 AJAX 调用创建一个单独的 URI,而不是动态地决定发送 HTML 的一部分还是 HTML 的整个页面。它更接近于 HTTP 的使用方式。您也可以考虑返回 JSON 并使用一些客户端模板,例如 MustacheJS
标签: ajax laravel laravel-4 dry