在 Laravel 中优雅处理 Form 表单

栏目: 编程语言 · PHP · 发布时间: 9年前

内容简介:在 Laravel 中优雅处理 Form 表单

原文: https://www.laravist.com/blog...

在开发 Laravel 应用的时候,通常都会涉及到表单的处理,针对如何优雅处理和复用 Laravel 的 Form 表单,下面是小小的人生经验:

使用 Form Package

虽然写原生的 HTML 代码可读性确实高了,但是其实 Form Package 还是会带给我们很多的便利,比如在使用 Form::model()Form::select() 的时候。

想象这样一个例子:我们需要添加或者更新用户的用户名

我们可以设计类似这样的代码和目录结构:

// 位于 resources/views/users/edit.blade.php
{!! Form::model($user, ['route' => ['users.update', $user->id], 'method' => 'put']) !!}
    @include('users._form')
    // Your cancel / update buttons
{!! Form::close() !!}

// 位于 resources/views/users/_form.blade.php
<div class="form-group">
    {!! Form::label('name', 'Name') !!}
    {!! Form::text('name') !!}
</div>

上面的 Form 生成的 HTML 代码大概是这个样子:

<form method="POST" action="http://example.com/users/1" accept-charset="UTF-8">
    <input name="_token" type="hidden" value="Q5oILhAr92pVqfE0ZSSXjSdJuUi09DVSPWweHQlq">
    <input name="_method" type="hidden" value="PUT">
    <div class="form-group"> 
        <label for="name">Name</label>
        <input name="name" type="text" value="Michael">
    </div>
</form>

注意在 Form::model() 方法中,我们之间传递了 $user 变量,这也就是说:如果 $user 存在 name 属性的值,表单就会自动填充该值,都不用我们手动写。

第二点就是,既然我们是要传递 $userForm::model() 中,我们可以在控制器中使用这样的小技巧:

class UserController extends Controller
{
    public function create()
    {
        return view('users.create', ['user' => new User]);
    }

    public function edit(User $user)
    {
        return view('users.edit', ['user' => $user]);
    }
}

这样的话,你在编辑和新增的时候都不会存在冲突,编辑更新的时候有 name 的值,新增的时候就不用有 name 的值。所以我们可以把整个 Form 表单写成类似下面这个:

// 位于 resources/views/users/_form.blade.php
<div class="form-group">
    <label for="name">Name</label>
    <input type="text" name="name" value="{{ old('name', $user->name) }}" class="form-control">
</div>

这样就大功告成啦!

最后

还是那句话:在表单处理的时候还是可以考虑一下 Form Package ,特别是你在处理 <select> 的时候,你会想念 Form Package 的。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

父与子的编程之旅

父与子的编程之旅

桑德 (Warren Sande)、桑德 (Carter Sande) / 苏金国、易郑超 / 人民邮电出版社 / 2014-10-1 / CNY 69.00

本书是一本家长与孩子共同学习编程的入门书。作者是一对父子,他们以Python语言为例,详尽细致地介绍了Python如何安装、字符串和操作符等程序设计的基本概念,介绍了条件语句、函数、模块等进阶内容,最后讲解了用Python实现游戏编程。书中的语言生动活泼,叙述简单明了。 为了让学习者觉得编程有趣,本书编排了很多卡通人物及场景对话,让学习者在轻松愉快之中跨入计算机编程的大门。 第 2 版新增内......一起来看看 《父与子的编程之旅》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具