laravel-admin做后台表单还是比较迅速的,一般的增删改查通过命令和修改代码很容易实现。但是对于定制化的页面来说,需要做一些调整。
产品的原型图是这样的
最后初步的效果是这样的
这个界面是用了一个单独的view,是一个独立的html,相对定制化。最开始的时候打算用form->row来排版,但是排出来简直不能看。
后来发现form有个form->html(view(‘admin::space.setting’, compact(‘setting’)))。相当于form里嵌套了一个view,这样就可以解决问题。
现在来详细说下,具体怎么实现的,又有什么地方需要注意的。
1、通过一个html方法把view引入进来,这里引入的只有静态html,如果有需要js的话,需要另外自己写js。比如用Admin::script($script);引入
$form->html($this->settingTime($default_info['times_setting']??''),'');
protected function settingTime($setting = []){
$this->settingScript();
$setting = [];
return view('admin::space.setting', compact('setting'));
}
protected function settingScript()
{
$script = <<<'EOT'
$('.').iCheck({checkboxClass:'icheckbox_minimal-blue'});
EOT;
Admin::script($script);
}
2、当你的view里name与表里name不一致的时候,可以默认一个hidden,form->hidden(‘times_setting’);然后在表单提交之前,将数据后放到$form里,就能成功添加和修改
$form->hidden('times_setting');
$form->saving(function (Form $form) use ($handle_region) {
$data = Input::all();
$form->times_setting = json_encode($data['setting_time']);
return $form;
});