📅  最后修改于: 2021-01-05 10:45:30             🧑  作者: Mango
Laravel通过提供各种内置标签来处理html表单。 Laravel生成HTML所需的主要元素。为了生成html元素,我们需要使用作曲家在Laravel中添加html包。
$composer require "laravelcollective/html":"^5.4.0"
当我们在Git bash窗口中输入上述命令时,输出将是:
在上面的窗口中,我们观察到命令“ $ composer require” laravelcollective / html“:” ^ 5.4.0 “更新了laravelcollective / html所需的composer.json文件。
上面突出显示的区域表示在config / app.php文件的providers数组中添加的HtmlServiceProvider。
'aliases' => [
Form' => Illuminate\Html\FormFacade::class,
'Html' => Illuminate\Html\HtmlFacade::class,
],
我们可以使用以下代码打开一个表单:
{Form::open(['url' => 'post/create'])}
//
{Form::close()}
在laravel形式中,如果未提及,则默认方法假定为' post '方法,但是我们可以自由指定任何其他方法。由于表单支持Post,Put,Delete和Get方法,因此可以使用隐藏方法字段将这些方法添加到表单中。
如果我们要在表单中使用put方法,则代码如下:
Form::open(['url'=>'Post/create , 'method'=>'Put''])
我们还可以打开指向命名路由或控制器动作的表单。
Form.open(['route' => 'route.name'])
Form.open(['action' => 'Controller@method'])
标签是以HTML格式显示的普通文本。下面给出了在Laravel中编写标签元素的语法:
形式::标签(“ phone_no”,“电话号码”);
我们还可以在label元素中指定其他属性。
形式::标签('phone_no','电话号码',['class'=>'phone_no']);
在这种情况下,我们在标签元素中添加了“类”作为属性。
文本是用户可以输入其数据的区域。下面给出了在Laravel中生成文本区域的语法:
形式:: text('email');
我们还可以在文本框中指定默认值。
形式:: text('email','akshita123@gmail.com');
密码是以捕获用户输入的形式的html元素,并且每个字符都以(*)的形式表示,而不是显示输入的数字。密码字段的语法如下:
形式::密码('密码',['类别'=>'密码']);
我们可以如下创建复选框:
形式::复选框('名称','值');
默认情况下,未选中该复选框。我们还可以通过为复选框元素提供真实值来选中该复选框。
Form :: checkbox('name','value',true);
我们可以如下创建单选按钮:
形式:: radio('name','value');
默认情况下,未选中单选按钮。我们还可以通过为单选按钮元素提供真实值来选择单选按钮。
形式:: radio(''name','value',true);
我们还可以在表单中添加数字输入字段。数字输入字段的语法如下:
形式::数字('名称','值');
文件输入字段是用于文件上传的表单中的html元素。文件输入字段的语法如下:
形式::文件('图像');
其中, image是文件输入字段的名称。
下拉元素用于显示所有预定义选项的列表。下面给出了创建下拉菜单的语法:
格式:: select('digits',[1,2,3,4,5,6])
我们还可以将下拉列表设置为默认值:
格式:: select('digits',[1,2,3,4,5,6],'2')
上面的代码使用数组的第二个元素设置下拉列表的值,即3,因为索引从0开始。
生成分组列表
我们可以通过下拉元素生成分组列表。我们来看一个例子:
形式::选择(“动物”,[
'fruits'=> ['Apple','Mango','Orange'],
'Vegetables'=> ['Potato','Tomato','Cabbage'],
])
生成具有范围的下拉列表。
形式:: selectRange('number',1,30)
生成带有月份名称的下拉列表。
Form.selectMonth('month')
年,月和日。下面给出了生成日期输入字段的语法:
形式::日期('名称',\ Carbon \ Carbon :: now())
我们还可以通过使用表单中的按钮字段在Web表单中创建按钮。让我们看看它的语法:
形式::提交(“点击我!”)
上一行创建名为“ Click me !! ”的提交按钮。
让我们通过一个例子来理解表格。
以下是创建表单所需的步骤。
步骤1:首先,我们创建名为Master.blade.php的Master布局文件。
Master Page Layout
@yield('content')
步骤2:其次,我们创建contact.blade.php文件,在其中添加Form代码。
@extends('layout.master')
@section('content')
Contact Page
{!! Form::open(['route'=>'posts.store']) !!}
{{ form::label('name','Name')}}
{{form::text('name','',['class'=>'form-control','placeholder'=>'Name'])}}
{{ form::label('gender','Gender')}}
{{ form::radio('male','Male')}} Male
{{ form::radio('Female','Female')}} Female
{{ form::label('profile','Profile')}}
{{form::select('list',['Software Developer','QA Analyst','Manager','HR'])}}
{{ form::label('dob','Date of Birth')}}
{{Form::date('dob', \Carbon\Carbon::now())}}
{{form::label('skills','Skills Description')}}
{{form::textarea('body','',['placeholder'=>'Skills Description'])}}
{{ form::label('percentage','Percentage in 12th')}}
{{form::text('percent','',['class'=>'form-control','placeholder'=>'Percentage in 12th'])}}
{{ form::label('experience','Experience')}}
{{form::number('exp','number')}}
{{ form::label('expected_salary','Expected Salary')}}
{{form::text('salary','',['placeholder'=>'Expected Salary'])}}
{{ form::label('resume','Resume Upload')}}
{{Form::file('resume')}}
{{Form::submit('Submit', ['class'=>'btn btn-primary'])}}
{!!Form::close()!!}
@stop
上面的代码用于创建包含不同字段的表单。
步骤3:现在,我们创建名为PostsController的资源控制器,并且仅将功能添加到store()函数,如下所示:
PostController.php
validate($request,[
'name'=>'required',
'list'=> 'required',
'dob'=>'required',
'body'=>'required',
'percent'=>'required',
'exp'=>'required',
'salary'=>'required',
'resume'=>'required']);
return "Resume has been updated successfully";
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
在上面的代码中,我们将代码添加到store()函数,该函数验证表单中的所有字段。
步骤4:最后,将路由添加到web.php文件中。
Route::get('/contact',function()
{
return view('contact');
});
输出量
假设我以上述形式输入以下详细信息:
填写所有详细信息后,单击Submit按钮,输出将是: