By accessing the website and accepting the Cookie Policy, you agree to use the cookies provided by the Site in accordance with to analyze traffic, remember your preferences, and optimize your experience.
OctoberCMS快速入门-20-前端表单
2018-10-24 13:24:10    412    0    0
emengweb

 

我们将利用上一节学习的表单,为movies添加一个表单组件。

首先准备目录,我们将复制contact插件中的contactform组件:

重命名和目录/文件: \plugins\raiseinfo\movies\components\contactform \plugins\raiseinfo\movies\components\ContactForm.php 到: \plugins\raiseinfo\movies\components\actorform \plugins\raiseinfo\movies\components\ActorForm.php

下面修改拷贝过来的文件: \plugins\raiseinfo\movies\components\ActorForm.php

namespace Raiseinfo\Movies\Components;

use Cms\Classes\ComponentBase;


class ActorForm extends ComponentBase
{

    public function componentDetails()
    {
        return [
          'name' => 'Actor Form',
          'description' => 'Enter actor form'
        ];
    }

    public function onSave()
    {
    }

}

\plugins\raiseinfo\movies\components\actorform\default.htm

<form data-request="onSave">

    <label>Name:</label>
    <input type="text" name="name" class="form-control">
    
    <label>Last name:</label>
    <input type="text" name="lastname" class="form-control">
    
    <button type="submit" class="btn btn-success form-control">Save</button>

</form>

\plugins\raiseinfo\movies\Plugin.php 修改registerComponents方法:

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

测试这个组件是否可用(虽然没有功能):

我们将创建一个新的页面:

我们点击保存,系统没有任何反应,因为我们没有对onSave方法进行定义。

use Illuminate\Support\Facades\Input;
use Raiseinfo\Movies\Models\Actor;

...

    public function onSave()
    {

        $actor = new Actor();
        $actor->name = Input::get('name');
        $actor->lastname = Input::get('lastname');
        $actor->save();

    }

下面我们试试可否添加演员信息

保存演员信息成功了。 是不是还有些不完美?起码要保存成功需要给用户一个提示吧。 October可以通过Flash实现发送消息。

C:\laragon\www\octobermovie\plugins\raiseinfo\movies\components\ActorForm.php

namespace Raiseinfo\Movies\Components;

use Cms\Classes\ComponentBase;


use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Redirect;
use Raiseinfo\Movies\Models\Actor;
use Flash;


class ActorForm extends ComponentBase
{

    public function componentDetails()
    {
        return [
          'name' => 'Actor Form',
          'description' => 'Enter actor form'
        ];
    }

    public function onSave()
    {

        $actor = new Actor();
        $actor->name = Input::get('name');
        $actor->lastname = Input::get('lastname');
        $actor->save();

        Flash::success('Actor add success');

        return Redirect::back();
    }

}

C:\laragon\www\octobermovie\plugins\raiseinfo\movies\components\actorform\default.htm

<form data-request="onSave">

    <label>Name:</label>
    <input type="text" name="name" class="form-control">

    <label>Last name:</label>
    <input type="text" name="lastname" class="form-control">

    <button type="submit" class="btn btn-success form-control">Save</button>

    {% flash success %}

        <p>{{ message }}</p>

    {% endflash %}
    
</form>

添加新演员,提示信息显示正常

 

上一篇: uikit抽屉与响应式可见性

下一篇: October CMS - 快速入门 19 - 表单验证

412 人读过
文档导航