首页 开发编程 正文

php怎么添加字段 Larsvel模板Form表单类用法

resource('events':publicfunctioncreate(){returnview('events.create')。'aliases'=>:['Form'=>['class'=>:'events.store'];['class'=>@extends('layouts.app')然后手动实现@s...

php怎么添加字段,Larsvel模板Form表单类的用法?

引言

作为后端工程师的你,是不是面对一堆JS,CSS感觉无比抓狂。如果能摆脱大量的冗余的HTML代码块, 那该多好啊。laravel作为扩展性极强的框架,自然是为广大后端开发者赋能。

本文我们讲一个简单且常用的表单类 Form。

代码时间

还记得我们之前文章提到的,laravel快速注册restful api方式路由方法的方式吗?

Route::resource('events', 'EventsController');

在那个章节,我们并没有手动实现路由对应的控制器方法,仅仅搭建了简单的代码框架。 现在我们首先实现添加记录的内容,预想前端页面有一个表单,用于提交数据。

public function create(){ return view('events.create');}

相对应地,需要创建一个blade文件,resources/views/events/create.blade.php , 为了使用框架提供的 Form 类库,在 config/app.php 文件内添加如下内容:

'aliases' => [ 'Form' => Collective\Html\FormFacade::class],

当然了,使用此类之前,你需要保证使用 composer 安装了匹配版本的类库文件。首先是一个简单的文本输入框:

{!! Form::text('name', null, [ 'class' => 'form-control input-lg', 'placeholder' => 'PHP Hacking and Pizza' ])!!}

以上代码最终生成的HTML内容如下:

<input placeholder="PHP Hacking and Pizza" name="name" type="text" value="" id="name" class="form-control input-lg">

大家注意,模板文件内使用的分隔符是使用 {!! !!},也就是说不对其进行转义。

Form::text第一个参数是分配给输入元素的name属性的字符串,该值也将分配给id属性,除非你在数组中明确为id分配值,并作为第三个参数传递。 第二个参数(当前设置为null)可用于设置表单字段的value属性。设置为null时,将使用空白值。

接着我们为input输入框添加一个标签,用于提示给用户该字段的用途。

上述表单元素会包裹在 <form>...</form>标签内,所以我们需要为上述内容添加这个标签。

{!! Form::open(['route' => 'events.store'], ['class' => 'form']) !!}{!! Form::close() !!}

其中默认表单使用的是 POST 方法,route 参数指定了路由的位置。也可以是使用的路由别名。

有了上方的代码结构,我们就可以构建一个完整的页面了。模板 resources/views/events/create.blade.php 代码如下。 首先使用布局模板文件:

@extends('layouts.app')

然后手动实现 @section('content')...@endsection部分代码。为了节约空间,仅贴出主要form表单元素:

<div class="row"> <div class="col"> // 表单内容 </div></div>

接着是表单内容结构,头部和尾部:

{!! Form::open(['route' => 'events.store'], ['class' => 'form']) !!}// 表单元素{!! Form::close() !!}

下面是一个完整的输入框:

<div class="form-group">{!! Form::label('name', 'Event Name', ['class' => 'control-label'])!!}{!! Form::text('name', null, ['class' => 'form-control input-lg', 'placeholder' => 'PHP Hacking and Pizza'])!!}</div>

还有下拉选择框:

<div class="form-group">{!! Form::label('max_attendees', 'Maximum Number of Attendees', ['class' => 'control-label'])!!}{!! Form::select('max_attendees', [2,3,4,5], null, ['placeholder' => 'Maximum Number of Attendees', 'class' => 'form-control input-lg'])!!}</div>

以及文本框输入:

<div class="form-group">{!! Form::label('description', "Description", ['class' => 'control-label'])!!}{!! Form::textarea('description', null, ['class' => 'form-control input-lg', 'placeholder' => 'Describe the event'])!!}</div>

以及最重要的提交按钮:

<div class="form-group">{!! Form::submit('Add Event', ['class' => 'btn btn-info btn-lg', 'style' => 'width: 100%'])!!}</div>

最后生成的表单页面如下图:

写在最后

本文介绍了laravel框架引入的Form类库,用于生成前端的表单页面元素,不过是用PHP的方式调用。 我们演示了常用的表单元素的用法,大家可以自定查看文档深入学习。

Happy coding :-)

我是@程序员小助手,专注编程知识,圈子动态的IT领域原创作者

MySQL怎么样让自动增加的id字段从0开始计数啊?

有时候我们在测试网站的时候,删除测试数据导致id不是从0开始,那如果想id是从0开始怎么办呢?MySQL默认自增ID是从1开始了,但当我们如果有插入表或使用delete删除id之后ID就会不会从1开始了.使用mysql时,通常表中会有一个自增的id字段,但当我们想将表中的数据清空重新添加数据时,希望id重新从1开始计数,用以下两种方法均可.通常的设置自增字段的方法,创建表格时添加:create table table1(id int auto_increment primary key,…)创建表格后添加:alter table table1 add id int auto_increment primary key 自增字段,一定要设置为primary key.例子,代码如下:alter table tablename drop column id;alter table tablename add id mediumint(8) not null primary key auto_increment first;//phpfensi.com方法二:alter table tablename auto_increment=0

从PHP向MySQL传入数据时?

我还真碰到过这类问题,我这边是有一个IT运维的管理系统,架设在Internet上,我们有IT服务工程师在客户现场做服务,之后需要将信息更新到系统中。有段时间,工程师反应经常碰见系统报错的情况,就是系统检测到部分上传信息为空而要求重新输入。

我查了一圈,最后发现是对方网络问题。对方是内外网的环境,在外网访问internet必须通过proxy。通过我这个服务获得的数据日志分析,感觉上这个proxyserver数据处理有问题,有时数据只能通过一部分剩下的就被截了,这次不行下次就没准儿行。由于那个服务器不归我们管,所以我们能做的只有在我们服务器端增强数据检测功能,确保进入系统的数据(关键部分)是完整的。

所以,我个人的建议是,在数据进数据库之前做好数据检验/检查工作,至少保证数据是存在的,尤其是关键性字段。如果这些字段数据有问题,就给出错误信息。这样的工作,即使前端做了,后端也要做。

php操作数据库的三步骤?

第一步:链接数据库

MYSQLi_connect('主机地址','mysql用户名','mysql密码 ','数据库','端口号')

返回:如果连接成功,返回资源类型的标志符号;如果连接失败,返回false。

如果我们与mysql建立的连接不只一条,那么以后操作数据库的各种函数都必须传入返回的连接符号;

如果我们与mysql建立的连接只有一条,那么以后操作数据库的各种函数就不必传入这个标识符号。建议都传入。

密码为空可以省略密码

$conn= mysqli_connect("localhost", "root", "123456", "dbname");

第二步:检测数据库连接是否成功

mysqli_connect_errno()与 mysqli_connect_error()

mysqli_connect_errno(); 返回上次连接数据库错误的错误号,连接成功返回0

mysqli_connect_error(); 返回上次连接数据库的错误信息

if(mysqli_connect_errno($conn)){

die("数据库连接失败!失败信息:".mysqli_connect_error($conn));

}

前面两步合并的写法:连接数据库同时判断

$conn = mysqli_connect("localhost", "root", "", "mydb") or die("数据库连接失败!失败信息:".mysqli_connect_error($conn));

第三步:选择数据库

mysqli_select_db($link,$dbname)

参数:①标识符 ②连接数据库名称

连接成功,返回true;连接失败,返回false

如果修改数据库成功,则资源标识符中的数据库就会发生变动;

如果修改失败而没有通过代码终止操作,则后续代码可以使用原数据库继续执行

mysqli_select_db($conn, "mydb") or die("数据库选择失败!");

第四步:设置字符集编码格式

mysqli_set_charset($link,$charset) 只能设置为utf8而不能是utf-8

mysqli_set_charset($conn,"utf8") or die("数据库编码集设置失败!");

第五步:编写sql语句

$sql = "select * from 表名";

第六步:执行sql语句

mysqli_query($link,$sql)

如果是(DML)增、删、改,将返回布尔类型是否成功

返回上一次操作时受影响的行数 mysqli_affected_rows($link)

如果是(DQL)查询,将返回资源结果集

返回资源结果集中的行数 mysql_num_rows($result)

返回资源结果集中的字段数 mysql_num_fields($result)

如果查询失败,返回false

$res = mysqli_query($conn,$sql);

mysqli_insert_id($conn); 执行插入语句是返回上次插入最新插入的主键ID

第七步:解析结果集

var_dump(mysqli_fetch_array($res)); 处理结果集,返回关联数组和索引数组 不常用

参数① 需要处理的结果集

参数② 返回哪种数组格式

MYSQL_ASSOC 关联数组

MYSQL_NUM 数字数组

MYSQL_BOTH 默认。同时产生关联和数字数组

echo "<table border='1' style='border-collapse:collapse;text-align:center;width:200px;'>";

echo "<thead bgcolor='lightblue' style='color:#ffffff;'><td>ID</td><td>姓名</td><td>年龄</td><td>性别</td></thead>";

while($row =mysqli_fetch_assoc($res)){ // 返回关联数组 指针遍历 常用

echo "<tr>";

foreach($row as $value){

echo "<td>{$value}</td>";

};

echo "</tr>";

}

echo "</table>";

mysqli_data_seek($res,0); 设置结果集指针位置,此式表达复位至0

var_dump(mysqli_fetch_object($res));

var_dump(mysqli_fetch_row($res)); 返回索引数组

var_dump(mysqli_fetch_object($res)); 返回对象

var_dump(mysqli_fetch_fields($res)); 返回结果集中每一列的字段信息

第八步:关闭资源与结果集

mysqli_free_result()和mysqli_close()

mysqli_free_result($res); //释放查询资源结果集

mysqli_close($conn); //关闭数据库连接

怎么在网页上用PHP做个搜索功能?

通过from表单,将查询的关键词,通过 like 跟数据进行模糊查询对比

从topics表中查询字段subject与传进来的参数'$_POST['topic']进行比较模糊查询

设subject字段数据为:数学,英语,物理,化学,英文

$subject=$_POST['topic'];

$sql = "select * from topics where subject like '%" .$subject. "%'";

$result = mysql_query($sql);

若从表单提交的‘topic’值为“学”,得到的结果将是:数学,化学

多个字段匹配查询:

$sql = "select id,subject from topics where (id like '%" .$id. "%') or (name like '%" .$name. "%') or (subject like '%" .$subject. "%') order by id desc";

结果依据字段id的顺序

本文转载自互联网,如有侵权,联系删除