2014-11-14 103 views
1

有没有办法让某人有View :: make后过滤器?什么即时通讯尝试待办事宜是通过一个HTML minifier运行返回的View :: make中的内容。Laravel View ::过滤器后?

我已经有App ::之后,最终的HTML文件缩小。但请参阅,即时将View :: make响应放入json对象(对于ajax请求),并且我需要将响应缩小。

回答

1

在响应发送给用户后,过滤器通常工作。

因此,要在发送之前缩小用户将看到的HTML需要进行处理。

但过滤器在这里也不会工作。因为它们在处理控制器方法之前被调用。

因此,您必须将您的过程用于您的控制器中,可能的解决方案是使用辅助函数与您的微缩代码或作为您的BaseController中的函数使用,所有控制器辅助函数。

您可以在控制器内执行以下操作;

$view = View::make('view.path', $data)->render() 

这将呈现并处理用户将看到的HTML视图。

然后,您可以将此函数传递给您必须缩小HTML并将其插入到JSON响应中的函数。

+0

但是,这里看到的问题是,我不是在控制器内调用这些视图助手。他们在图书馆内被召唤。我有一个辅助函数用于缩小输出,但我不想确保每次都记住通过minfier传递视图,而是使其成为某种全局钩子。 Surly有一个方法! –

+0

这就是为什么我说让你的基础控制器做一个功能,让所有的控制器访问这个方法或钩子,你调用它。 –

+0

我重申:“我不是在控制器中调用这些视图助手。”他们来自随机位置,我想我可以创建一个静态函数并通过命名空间路由来调用它,但是有办法做到这一点,而不必通过函数明确地传递它,它完全违反了DRY原则。 –