laravel-admin form表单使用部分自定义页面

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;
});
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章