前言:
在上一遍文章(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(); } }
