欢迎各位兄弟 发布技术文章
这里的技术是共享的
{{ Form::open(['url' => 'foo']) }}
//...
{{ Form::close() }}
使用open 及close 来建立一个表单。参数是以阵列的方式设定,method 预设为POST,如果要指定其他的方法,可自行增加:
{{ Form::open(['url' => 'foo', 'method' => 'put']) }}
你也可以不使用url,改用route:
{{ Form::open(['route' => 'route.name']) }}
route 带参数:
{{ Form::open(['route' => ['route.name', $user->id] ]) }}
或是指定Controller:
{{ Form::open(['action' => 'Controller@method']) }}
Controller 带参数:
{{ Form::open(['action' => ['Controller@method', $user->id] ]) }}
绑定资料模型,可以让你在需要载入资料到表单栏位时更加方便。
在前面的微型部落格例子中,当我们在编辑文章时,可以改用Model Binding 的方式来改写:
原本的
{{ Form::open(['url'=>'post/'.$post->id, 'method'=>'put']) }}
改成
{{ Form::model($post, ['action'=>['HomeController@update', $post->id]]) }}
现在这个表单已经和$post 所储存的Post 模型绑定,在之后的栏位,就不需要在指定值,只要栏位名称和Post 的属性名称相同即可。
原本的
{{ Form::text('title', $post->title) }}<br>
改为
{{ Form::text('title') }}<br>
这里的'title' 和Post 的属性,也就是资料库中的栏位同名。因此可以不用$post->title 去指定值。
标签文字,通常放在输入框的前面,用来说明输入框内要填入什么内容:
{{ Form::label('title', '标题
') }}
如果要加入HTML 属性,可以这么做:
{{ Form::label('title', '标题
', ['class'=>'title']) }}
要用到css 去指定样式时,可以加入class 属性。后面其他的表单项目都可以这么使用。
文字输入框:
{{ Form::text('title') }}
{{ Form::textarea('content') }}
{{ Form::password('password') }}
指定值:
{{ Form::text('title', '这是标题') }}
{{ Form::textarea('content', '这是內容') }}
{{ Form::hidden('id', '5') }}
密码栏位会以点或星号显示输入的文字。
隐藏栏位通常会带值。
text 可以利用label 中说明的加入属性['size'=>30] 来改变输入框的宽度。textarea 则是['size'=>'50x50']。
另外还有email 及档案:
{{ Form::email('email') }}
{{ Form::file('upload') }}
!重要,当你有使用到file 栏位时,在open 中必须加入['files' => true] 参数, 才能执行上传的动作,例如:
{{Form::open(['url'=>'post', 'method'=>'post', 'files'=>true])}}
多选
{{ Form::checkbox('habit', 'reading', true) }}看書<br>
habit 是栏位名称,reading 是值,true 表示预设为勾选,可以省略不写,表示不勾选。
单选
{{ Form::radio('city', 'taipei', true) }}Taipei<br>
{{ Form::radio('city', 'taichung') }}Taichung<br>
{{ Form::radio('city', 'kaohsiung') }}Kaohsiung<br>
city 是栏位名称,同名的视为一组,同一组中只有一个可以被选取。taipei 等是值,true 表示选择。
一般清单
{{ Form::select('size', ['L'=>'大','M'=>'中','S'=>'小'], 'M') }}
size 是栏位名称;第二个参数是阵列,表示清单项目;第三个参数可省略,是前面阵列中的Key,表示预设选取的项目。
群组清单
{{ Form::select('fruit', [
'A' => ['apple' => 'Apple'],
'B' => ['banana' => 'Banana'],
])}}
fruit 是栏位名称;阵列是清单项目;A 是群组名称,之后的阵列是属于该群组的清单项目。
连续数字清单
{{ Form::selectRange('number', 10, 20) }}
number 是栏位名称,10 是起始值,20 是结束值,这个清单会自动产生10~20 的数字项目。
月份清单
{{ Form::selectMonth('month') }}
自动产生月份名的清单项目,不过是英文的。
Submit
{{ Form::submit('发表文章') }}
Button
{{ Form::button('按钮') }}
Written by Tony at Tony Blog - http://blog.tonycube.com/