2

本节将创建有关actor的组件:
首先创建一下目录结构

clipboard.png

首先创建插件的基本功能

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();
    }
}

注册组件

public function registerComponents()
{
    return [
        'Raiseinfo\Movies\Components\Actors' => 'actors'
    ];
}

切换到后台,我们可以看见组件里面已经有了我们刚刚创建的组件了

clipboard.png

在首页添加演员列表

clipboard.png

打开首页,刷新页面,发现没有任何输出,这是因为,我们没有编写组件的HTML,所以不会有任何显示。
首先传入演员列表,并循环输出

{% set actors = __SELF__.actors %}


<ul>
    {% for actor in actors %}
        <li>{{ actor.name }} {{ actor.lastname }}</li>
    {% endfor %}
</ul>

刷新首页,就看见显示的演员的列表:

clipboard.png

到目前为止,最简单的组件我们就创建好了,我们可以继续扩展其功能。


后山人
272 声望39 粉丝

这个是一个典型的,前后端分离的开发框架,而且很多前后端代码,都可以很好的生成,无需写代码,大大减少程序员编写代码的数量。提高效率,降低成本!