Laravel 4,针对@include查看作曲家
我注意到,如果我将第二个参数传递给@include,如下所示:Laravel 4,针对@include查看作曲家,laravel,laravel-4,blade,Laravel,Laravel 4,Blade,我注意到,如果我将第二个参数传递给@include,如下所示: @include('sidebars.pages', array('categories' => Category::all())) 然后,可以在视图中复制渲染部分的概念,并像在Rails中一样在部分中渲染部分 我还需要具有此功能的视图生成器吗 谢谢你的帮助 虽然这可能是可能的,但这不是@include的使用文档。当我这样做的时候,我会谨慎行事,而且就我个人而言,我不会在你的视野中给一个模型打电话。从路由或控制器绑定所需的数
@include('sidebars.pages', array('categories' => Category::all()))
然后,可以在视图中复制渲染部分的概念,并像在Rails中一样在部分中渲染部分
我还需要具有此功能的视图生成器吗
谢谢你的帮助 虽然这可能是可能的,但这不是
@include
的使用文档。当我这样做的时候,我会谨慎行事,而且就我个人而言,我不会在你的视野中给一个模型打电话。从路由或控制器绑定所需的数据。使用演示者执行任何演示逻辑,以保持视图绝对干净
@include
将所有当前定义的变量注入嵌套的局部视图。因此,如果您将所有类别绑定到父视图,然后使用@include('sidebars.pages')
,则该视图也会将类别绑定到父视图。尝试使用视图生成器将数据绑定到视图。最适合局部视图
// View Composer Example
View::composer(array('sidebars.pages'), function($view)
{
$view->with('categories', Categories::all());
});
@include('sidebars.pages')
好的,谢谢你,刘易斯先生,我会和主持人一起玩并试一试。你好,view作曲家住在哪里?它可能在应用程序根目录中的composers.php文件中吗?我不知道他们是否必须住在控制器中,因为他们必须在任何地方都可以使用。你可以创建一个文件夹来存放你的视图生成器,并将其包含在start/global.php中,或者将其放在你的app/routes.php文件中。好的,莫盖图先生,我感谢你的回答和评论。如果需要将参数传递给视图生成器中的类方法,请告诉我会发生什么?例如
Blog\u model::recent($post->category->id,5)
你是如何通过url访问$post->category->id的?您使用的是L3还是L4?您可以尝试会话或缓存试图访问的变量,并在视图生成器中访问它们。