我希望扩展Laravel 4以包含ViewModel
对象,或者可能使Views
像ViewModel
一样并创建一个单独的模板部分。我更喜欢为此使用小胡子,但这不是必需的。
是否有任何好的库或代码片段可以让我扩展基本的Laravel功能,并在控制器和HTML模板之间插入ViewModel
。任何帮助将不胜感激!
我不确定我是否完全理解您的问题 - ViewComposers 不适合吗?
根据您要实现的目标,您还可以挂接到在撰写视图之前触发的视图编辑器事件,如下所示:
app/start/global.php 或在 PackageServiceProvider 中
Event::listen('composing: *', function($view) {
//custom code here acting upon the instantiated View object
}
在我输入composing: *
的地方,* 对应于视图名称,在本例中匹配任何视图名称。
您可以通过命名视图间距并创建响应不同命名空间的事件侦听器来更进一步 您可以为您的胡须视图注册一个新的命名空间,然后只响应该命名空间中的视图,通常我会将我的胡须视图放在公共目录中,以便客户端可以访问它们,因此您可以执行以下操作:
app/start/global.php 或在 PackageServiceProvider 中
View::addNamespace('m', public_path() . '/views');
Event::listen('composing: m::*', function($view) {
//custom code here acting upon the instantiated View object when a namespaced mustache view is composed.
}
然后,您将使用以下方法创建这些视图:
View:make('m::view_name')
以创建视图
公共/观点/view_name.胡子
如果以上内容不能满足您的需求,您可以查看演示者 - 我还没有尝试过这个软件包,但可能是您想要的。
希望这有帮助,对不起,如果我误解了你的问题