unisharp/laravel-widgetify

帮助处理Laravel中的部分视图中的数据。

dev-master 2015-11-10 03:17 UTC

This package is auto-updated.

Last update: 2024-09-15 15:02:57 UTC


README

  • 帮助您将部分视图作为小部件获取

安装

  1. 安装包

        composer require unisharp/laravel-widgetify
  2. 编辑config/app.php

    服务提供者

        Unisharp\Widget\WidgetServiceProvider::class,

    类别名

        'Widget' => Unisharp\Widget\WidgetFacade::class,
  3. 发布小部件模板类

        php artisan vendor:publish --tag=widget_example

用法

    Widget::set('side', 'widget-class-name', $args = []]);
    // set widgets with position

    Widget::get('side');
    // get all widgets of a position

示例

  1. App\Widgets\Block.php

        class Block implements WidgetInterface
        {
            public $view = 'home.widgets.side_html';
    
            public function getData($args)
            {
                return ['html' => \App\Utility::getPageByAlias($args['alias'])];
            }
        }
  2. home.widgets.side_html.blade.php

        @if(!empty($html->content))
            <section class="facebook-plugin">
                {!! $html->content !!}
            </section>
        @endif
  3. 在控制器中设置小部件

        \Widget::set('side', 'block', ['alias' => 'side_top_html']);
        \Widget::set('side', 'facebook');
        \Widget::set('side', 'block', ['alias' => 'side_mid_html']);
        \Widget::set('side', 'subscription');
        \Widget::set('side', 'block', ['alias' => 'side_buttom_html']);
  4. 在视图中显示小部件

        {!! \Widget::get('side') !!}