表单的底部按钮,是预先定义了一个模板,这些模板的路径在:
/vendor/dcat/laravel-admin/resources/views
Form::make()构建一个表单的时候,Form类只相当于是一个平台,主要进行表单构建是通过 Dcat\Admin\Form\Builder类进行的。
在手册里,操作表单底部使用的方法是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')}}