表单底部工具按钮

表单的底部按钮,是预先定义了一个模板,这些模板的路径在:

/vendor/dcat/laravel-admin/resources/views

Form::make()构建一个表单的时候,Form类只相当于是一个平台,主要进行表单构建是通过 Dcat\Admin\Form\Builder类进行的。

在手册里,操作表单底部使用的方法是form->footer() 方法,看代码可以发现是通过this->builder 调用的footer方法

    public function footer(Closure $callback)
    {
        call_user_func($callback, $this->builder->footer());

        return $this;
    }

进入Builder类后,看构造函数,可以发现由下面几部分组成。其中表单底部由单独的footer类构成。

    public function __construct(Form $form)
    {
        $this->form = $form;
        $this->fields = new Collection();
        $this->layout = new Layout($form);
        $this->tools = new Tools($this);
        $this->footer = new Footer($this);
    }

Dcat\Admin\Form\Footer 这个类里,它的框架默认模板是:

protected $view = 'admin::form.footer';

我们可以将默认的模板代码复制到自定义的页面,然后在进行传值,这样就可以达到二次开发的效果了。

<div class="box-footer">

    <div class="col-md-{{$width['label']}} d-md-block" style="display: none"></div>

    <div class="col-md-{{$width['field']}}">

        @if(! empty($buttons['submit']))
            <div class="btn-group pull-right">
                <button class="btn btn-primary submit"><i class="feather icon-save"></i> {{ trans('admin.submit') }}</button>
            </div>

            @if($checkboxes)
                <div class="pull-right d-md-flex" style="margin:10px 15px 0 0;display: none">{!! $checkboxes !!}</div>
            @endif

        @endif

        @if(! empty($buttons['reset']))
        <div class="btn-group pull-left">
            <button type="reset" class="btn btn-white"><i class="feather icon-rotate-ccw"></i> {{ trans('admin.reset') }}</button>
        </div>
        @endif
    </div>
</div>

通过分析模板代码,可以看到 按钮的名字,是由 trans()方法来处理的。

按钮的名字如何修改

trans函数定义在Dcat\Admin\Support\Translator 类中。

这个函数最终会在/vendor/dcat/laravel-admin/resources/lang/ 语言目录中找到定义好的数组文件,然后得到预先定义好的内容。

比如提交按钮 admin.submit,中文语言在/data/www/wujincms/vendor/dcat/laravel-admin/resources/lang/zh_CN 目录里。

进入admin.php文件 ,可以看到下面的submit字段选项.

'client' => [
        'delete_confirm'    => '确认删除?',
        'confirm'           => '确认',
        'cancel'            => '取消',
        'refresh_succeeded' => '刷新成功 !',
        'submit'            => '提交',

以上是Dcat Admin 框架的流程,下面我们改成自定义的名字。

进入对应的语言包文件,例如:resources/lang/zh_CN/目录下

其中options部分,就可以设置针对按钮的名字。

return [
    'labels' => [
        'Guest' => 'Guest',
        'guest' => 'Guest',
    ],
    'fields' => [
        'name' => '姓名',
        'content' => '个人信息',
        'occupation' => '职业',
        'description' => '个人简介',
        'sex' => '性别',
        'age' => '年龄',
    ],
    'options' => [
        'add'=>[
            'submit'=>'保存嘉宾',
            'reset'=>'取消'
        ]
    ],
];

然后在模板里 使用admin_trans_option()方法,注意参数的位置,要设定的按钮名的key,放在参数1的位置,就是倒着放。

{{ admin_trans_option('submit','add')}}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容