本节将创建有关actor的组件:
首先创建一下目录结构
首先创建插件的基本功能raiseinfo/movies/components/Actors.php
<?php namespace Raiseinfo\Movies\Components; use Cms\Classes\ComponentBase; use Raiseinfo\Movies\Models\Actor; class Actors extends ComponentBase { public $actors; public function componentDetails() { // TODO: Implement componentDetails() method. return [ 'name' => 'Actor List', 'description' => 'List of actors' ]; } public function onRun() { $this->actors = $this->loadActors(); } protected function loadActors() { return Actor::all(); } }
注册组件Plugin.php
public function registerComponents() { return [ 'Raiseinfo\Movies\Components\Actors' => 'actors' ]; }
切换到后台,我们可以看见组件里面已经有了我们刚刚创建的组件了
在首页添加演员列表
打开首页,刷新页面,发现没有任何输出,这是因为,我们没有编写组件的HTML,所以不会有任何显示。
首先传入演员列表,并循环输出
components/actors/default.htm
{% set actors = __SELF__.actors %} <ul> {% for actor in actors %} <li>{{ actor.name }} {{ actor.lastname }}</li> {% endfor %} </ul>
刷新首页,就看见显示的演员的列表:
到目前为止,最简单的组件我们就创建好了,我们可以继续扩展其功能。