上一节我们通过actor组件在首页添加了组件,展示了一个actor列表。接下来我们给组件添加一些属性:defineProperties这个函数会返回一个数组,数组中的每个数组都会返回添加的选项,并显示每个选项的演员数量限制文件:plugins\raiseinfo\movies\组件\演员。phppublicfunctiondefineProperties(){return['results'=>['title'=>'显示演员数','description'=>'你想显示多少个演员?','default'=>0,'validationPattern'=>'^[0-9]+$','validationMessage'=>'只允许使用数字。']];但是,我们只是设置了选项,这个选项并不控制数据。以下解决方案使用此选项来控制数据的显示:File:plugins\raiseinfo\movies\components\Actors.phpprotectedfunctionloadActors(){$query=Actor::all();if($this->property('results')>0){$query=$query->take($this->property('results'));}返回$查询;}控制演员排序规则File:plugins\raiseinfo\movies\components\Actors.phppublicfunctiondefineProperties(){return['results'=>['title'=>'显示演员数量','description'=>'你想展示多少演员?','default'=>0,'validationPattern'=>'^[0-9]+$','validationMessage'=>'只允许使用数字。'],'sortOrder'=>['title'=>'Sortactors','description'=>'Sortactors','type'=>'dropdown','default'=>'nameasc']];}File:plugins\raiseinfo\movies\components\Actors.phppublicfunctiongetSortOrderOptions(){return['nameasc'=>'按名称升序排序','namedesc'=>'按名称降序排序'];好的,现在选项显示出来了。接下来实现数据控制File:plugins\raiseinfo\movies\components\Actors.phpprotectedfunctionloadActors(){$query=Actor::all();if($this->property('sortOrder')=='nameasc'){$query=$query->sortBy('name');}if($this->property('sortOrder')=='namedesc'){$query=$query->sortByDesc('name');}if($this->property('results')>0){$query=$query->take($this->property('results'));}返回$查询;}
