博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
October CMS - 快速入门 17 - 为组件添加选项
阅读量:6316 次
发布时间:2019-06-22

本文共 2046 字,大约阅读时间需要 6 分钟。

上一节我们通过actor组件为首页添加了组件,显示了演员的列表。

下面我们将为组件添加一些属性:defineProperties
这个函数会返回一个数组,数组里面的每个数组将返回的是每个选项

添加显示演员个数限制的选项

File:plugins\raiseinfo\movies\components\Actors.php    public function defineProperties()    {        return [          'results' =>  [              'title' => '显示演员的个数',              'description' => '您希望显示多少个演员?',              'default' => 0,              'validationPattern' => '^[0-9]+$',              'validationMessage' => '只允许输入数字。'          ]        ];    }

clipboard.png

clipboard.png

但是,我们只是设置了选项,这个选项并没有对数据进行控制。下面解决使用这个选项控制数据的显示:

File:plugins\raiseinfo\movies\components\Actors.php    protected function loadActors()    {        $query = Actor::all();        if($this->property('results') > 0){            $query = $query->take($this->property('results'));        }        return $query;    }

clipboard.png

clipboard.png

控制演员排序规则

File:plugins\raiseinfo\movies\components\Actors.php    public function defineProperties()    {        return [          'results' =>  [              'title' => '显示演员的个数',              'description' => '您希望显示多少个演员?',              'default' => 0,              'validationPattern' => '^[0-9]+$',              'validationMessage' => '只允许输入数字。'          ],          'sortOrder' => [              'title' => '演员排序',              'description' => '对演员排序',              'type' => 'dropdown',              'default' => 'name asc'          ]        ];    }
File:plugins\raiseinfo\movies\components\Actors.php    public function getSortOrderOptions()    {        return [            'name asc' => '以姓名升序排列',            'name desc' => '以姓名降序排列'        ];    }

clipboard.png

好的,现在选项显示出来。接下来实现对数据的控制

File:plugins\raiseinfo\movies\components\Actors.phpprotected function loadActors()    {        $query = Actor::all();        if($this->property('sortOrder') == 'name asc'){            $query = $query->sortBy('name');        }        if($this->property('sortOrder') == 'name desc'){            $query = $query->sortByDesc('name');        }        if($this->property('results') > 0){            $query = $query->take($this->property('results'));        }        return $query;    }

clipboard.png

clipboard.png

clipboard.png

clipboard.png

转载地址:http://lyuaa.baihongyu.com/

你可能感兴趣的文章
SSL/TLS原理详解
查看>>
Docker 自定义SSH服务镜像
查看>>
JavaScript强化教程 —— Cocos2d-JS自动JSB绑定规则修改
查看>>
configure: error: in `/root/httpd-2.2.11/srclib/apr': c
查看>>
buildroot下查找外部编译器通过ext-toolchain-wrapper调用的参数
查看>>
MySQL Replication 主主配置详细说明
查看>>
Linux的任务调度
查看>>
在Android studio中添加jar包方法如下
查看>>
iframe 在ie下面总是弹出新窗口解决方法
查看>>
分享10款漂亮实用的CSS3按钮
查看>>
安装nginx 常见错误及 解决方法
查看>>
在之前链表的基础上改良的链表
查看>>
android编译系统makefile(Android.mk)写法
查看>>
MD5源代码C++
查看>>
Eclipse 添加 Ibator
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>