2014-11-14 177 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原則。 –