前言:
在上一遍文章(https://www.cnblogs.com/shiwenhu/p/10271013.html)中寫到可以使用自定義form組建來創建表單,幾乎能滿足我們大部分要求,而且不用我們來寫html頁面。但是對於很多定制的頁面,form組建不能滿足我們的要求的頁面需求時候,這個時候想自定義一個頁面我們手工來定制。
方法:
1.還是在對應的視圖方法中,定義我們的視圖文件(這個時候定義了我們的test模板,然后傳值name初始化,可以用於編輯功能)
public function create(Content $content) { // 方式1,使用form組建進行頁面渲染 // $f = new \Encore\Admin\Widgets\Form([ // 'name'=>'初始化數據' // ]); // $f->action('/adminyc/area'); // $f->textarea('name', '簡介')->help('簡介'); // return $content // ->header('Create') // ->description('description') // ->body($f); return $content ->header('Create') ->description('description') ->body(view('test', ['name' => '初始化數據'])->render()); }
2.對應的test.blade.php
<form action="/adminyc/area" method="post"> <div class="row"> <div class="col-md-12"> <div class="box box-info"> <div class="box-header with-border"> <h3 class="box-title">創建公司</h3> </div> <div class="form-horizontal"> <div class="box-body"> <div class="form-group {!! !$errors->has('name') ? '' : 'has-error' !!}"> <label for="text1" class="col-sm-2 control-label">公司名稱</label> <div class="col-sm-10"> @foreach ($errors->get('name') as $error) <label class="control-label" for="inputError"><i class="fa fa-times-circle-o"></i> {{$error}}</label><br/> @endforeach <input type="text" class="form-control" id="text1" placeholder="公司名稱" name="name" value="{{old('name', $name)}}"> </div> </div> </div> </div> </div> </div> </div> <div class="box-footer"> <button type="submit" class="btn btn-info pull-right">保存</button> <input type="hidden" name="_token" value="{{ csrf_token() }}"> </div> </form>
3.對應的業務處理方法
public function store(Request $request) { $val = \Illuminate\Support\Facades\Validator::make($request->all(), [ 'name' => 'required|array' ], [ 'name.required' => "名字不能為空" ]); if ($val->fails()) { return redirect('/adminyc/area/create') ->withErrors($val) ->withInput(); } }