【问题标题】:Laravel 4, view composers against @includeLaravel 4,针对 @include 查看作曲家
【发布时间】:2013-04-12 02:30:37
【问题描述】:

我注意到如果我像这样将第二个参数传递给@include:

@include('sidebars.pages', array('categories' => Category::all()))

然后可以复制在视图中渲染部分的概念,并在部分中渲染部分,就像在 Rails 中一样。

我还需要具有此功能的视图作曲家吗?

感谢您的帮助!

【问题讨论】:

    标签: laravel laravel-4 blade


    【解决方案1】:

    尝试使用 View Composers 将数据绑定到视图。最适合局部视图

    // View Composer Example
    View::composer(array('sidebars.pages'), function($view)
    {
        $view->with('categories', Categories::all());
    
    });
    
    @include('sidebars.pages')
    

    【讨论】:

    • 您好,视图作曲家住在哪里?它可能在应用程序根目录内的 composers.php 文件中吗?我不明白他们是否必须住在控制器中,因为他们必须在任何地方都可用。
    • 您可以创建一个文件夹来保存您的视图作曲家并将其包含在 start/global.php 中,或者将其包含在您的 app/routes.php 文件中。
    • 好的,mogetutu 先生,感谢您的回答和评论。如果我需要将参数传递给视图编写器中的类方法,请告诉我会发生什么?如Blog_model::recent($post->category->id, 5)
    • 你是如何通过 url 访问 $post->category->id 的?你使用的是 L3 还是 L4?
    • 您可以尝试会话或缓存您尝试访问的变量并在视图编辑器中访问它们。
    【解决方案2】:

    虽然这可能不是@include 的记录使用。这样做时我会谨慎行事,而且就个人而言,我不会在您的视图中调用模型。从路由或控制器绑定您需要的数据。使用演示者执行任何演示逻辑,以保持视图绝对干净。

    @include 将所有当前定义的变量注入嵌套的局部视图。因此,如果您将所有类别绑定到父视图,然后使用@include('sidebars.pages'),那么该视图也会将类别绑定到它。

    【讨论】:

    • 好的,谢谢刘易斯先生,我和主持人一起玩一下。
    猜你喜欢
    • 2013-06-01
    • 2014-05-07
    • 2013-07-10
    • 2013-08-16
    • 2015-02-14
    • 2013-06-21
    • 2013-06-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多