本文概述
- 安装
- 开启表格
- 生成HTML元素
安装
- 我们首先使用composer安装软件包。在Git bash窗口中输入以下命令以安装软件包。
$composer require "laravelcollective/html":"^5.4.0"
当我们在Git bash窗口中输入上述命令时, 输出将是:
文章图片
在上面的窗口中, 我们观察到命令“ $ composer require” laravelcollective / html“:” ^ 5.4.0“更新了laravelcollective / html所需的composer.json文件。
- 接下来, 在你的项目中打开config / app目录, 然后在config / app.php文件的providers数组中添加html provider。
文章图片
上面突出显示的区域表示在config / app.php文件的providers数组中添加的HtmlServiceProvider。
- 最后, 我们将两个类别名添加到config / app.php文件的aliases数组中。
'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元素
- 标签
表单::标签(’ phone_no’ , ‘ 电话号码’ );
我们还可以在label元素中指定其他属性。
表单::标签(’ phone_no’ , ‘ 电话号码’ , [‘ class’ => ’ phone_no’ ]);
在这种情况下, 我们在标签元素中添加了“类”作为属性。
- 文本
表单:: text(’ email’ );
我们还可以在文本框中指定默认值。
表单:: text(’ email’ , ‘ akshita123@gmail.com’ );
- 密码
表单::密码(’ 密码’ , [‘ 类’ => ’ 通过’ ]));
- 选框
表单::复选框(’ 名称’ , ‘ 值’ );
默认情况下, 未选中该复选框。我们还可以通过为复选框元素提供真实值来选中该复选框。
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开始。
生成分组列表
我们可以通过下拉元素生成分组列表。我们来看一个例子:
表单:: select(’ 动物’ , [‘ 水果’ => [‘ 苹果’ , ‘ 芒果’ , ‘ 橙色’ ], ‘ 蔬菜’ => [‘ 土豆’ , ‘ 蕃茄’ , ‘ 白菜’ ], ])生成具有范围的下拉列表。 Form :: selectRange(’ number’ , 1, 30)生成带有月份名称的下拉列表。 Form.selectMonth(’ month’ )
- 日期
表单::日期(’ 名称’ , \ Carbon \ Carbon :: now())
- 纽扣
表单::提交(“点击我!”)
上面的行创建名为“ Click me !!”的提交按钮。
让我们通过一个例子来理解表格。
以下是创建表单所需的步骤。
步骤1:首先, 我们创建名为Master.blade.php的Master布局文件。
<
html>
<
head>
<
title>
Master Page Layout <
/title>
<
/head>
<
body>
<
div class="container">
@yield('content')
<
/div>
<
/body>
<
/html>
步骤2:其次, 我们创建contact.blade.php文件, 在其中添加Form代码。
@extends('layout.master')
@section('content')
<
h1>
Contact Page<
/h1>
{!! Form::open(['route'=>
'posts.store']) !!}<
div class="form-group">
{{ form::label('name', 'Name')}}
{{form::text('name', '', ['class'=>
'form-control', 'placeholder'=>
'Name'])}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('gender', 'Gender')}}
{{ form::radio('male', 'Male')}} Male
{{ form::radio('Female', 'Female')}} Female
<
/div>
<
br>
<
div class="form-group">
{{ form::label('profile', 'Profile')}}
{{form::select('list', ['Software Developer', 'QA Analyst', 'Manager', 'HR'])}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('dob', 'Date of Birth')}}
{{Form::date('dob', \Carbon\Carbon::now())}}
<
/div>
<
br>
{{form::label('skills', 'Skills Description')}}
<
div class="form-group">
{{form::textarea('body', '', ['placeholder'=>
'Skills Description'])}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('percentage', 'Percentage in 12th')}}
{{form::text('percent', '', ['class'=>
'form-control', 'placeholder'=>
'Percentage in 12th'])}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('experience', 'Experience')}}
{{form::number('exp', 'number')}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('expected_salary', 'Expected Salary')}}
{{form::text('salary', '', ['placeholder'=>
'Expected Salary'])}}
<
/div>
<
br>
<
div class="form-group">
{{ form::label('resume', 'Resume Upload')}}
{{Form::file('resume')}}
<
/div>
<
br>
{{Form::submit('Submit', ['class'=>
'btn btn-primary'])}}{!!Form::close()!!}
@stop
上面的代码用于创建包含不同字段的表单。
步骤3:现在, 我们创建名为PostsController的资源控制器, 并且仅将功能添加到store()函数中, 如下所示:
PostController.php
<
?phpnamespace App\Http\Controllers;
use Illuminate\Http\Request;
class PostsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
}/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
//
}/**
* Store a newly created resource in storage.
*
* @param\Illuminate\Http\Request$request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$this->
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.
*
* @paramint$id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}/**
* Show the form for editing the specified resource.
*
* @paramint$id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
//
}/**
* Update the specified resource in storage.
*
* @param\Illuminate\Http\Request$request
* @paramint$id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
//
}/**
* Remove the specified resource from storage.
*
* @paramint$id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
//
}
}
在上面的代码中, 我们将代码添加到store()函数中, 该函数验证表单中的所有字段。
步骤4:最后, 将路由添加到web.php文件中。
Route::get('/contact', function()
{
return view('contact');
});
输出量
文章图片
假设我以上述表单输入以下详细信息:
文章图片
【Laravel表单】填写所有详细信息后, 单击Submit按钮, 然后输出为:
文章图片
推荐阅读
- Laravel生成迁移
- Laravel文件上传
- Laravel CRUD操作全解
- Laravel数据库
- Laravel Blade模板
- 什么是控制器()
- Laravel控制器中间件
- Laravel Composer安装详细教程
- 创建第一个Laravel项目详细步骤