成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

在 Laravel 中優(yōu)雅處理 Form 表單

Stardustsky / 3204人閱讀

摘要:原文在開發(fā)應(yīng)用的時(shí)候,通常都會(huì)涉及到表單的處理,針對如何優(yōu)雅處理和復(fù)用的表單,下面是小小的人生經(jīng)驗(yàn)使用雖然寫原生的代碼可讀性確實(shí)高了,但是其實(shí)還是會(huì)帶給我們很多的便利,比如在使用和的時(shí)候。

原文:https://www.codecasts.com/blo...

在開發(fā) Laravel 應(yīng)用的時(shí)候,通常都會(huì)涉及到表單的處理,針對如何優(yōu)雅處理和復(fù)用 Laravel 的 Form 表單,下面是小小的人生經(jīng)驗(yàn):

使用 Form Package

雖然寫原生的 HTML 代碼可讀性確實(shí)高了,但是其實(shí) Form Package 還是會(huì)帶給我們很多的便利,比如在使用 Form::model()Form::select() 的時(shí)候。

想象這樣一個(gè)例子:我們需要添加或者更新用戶的用戶名

我們可以設(shè)計(jì)類似這樣的代碼和目錄結(jié)構(gòu):

// 位于 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
{!! Form::label("name", "Name") !!} {!! Form::text("name") !!}

上面的 Form 生成的 HTML 代碼大概是這個(gè)樣子:

注意在 Form::model() 方法中,我們之間傳遞了 $user 變量,這也就是說:如果 $user 存在 name 屬性的值,表單就會(huì)自動(dòng)填充該值,都不用我們手動(dòng)寫。

第二點(diǎn)就是,既然我們是要傳遞 $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]);
    }
}

這樣的話,你在編輯和新增的時(shí)候都不會(huì)存在沖突,編輯更新的時(shí)候有 name 的值,新增的時(shí)候就不用有 name 的值。所以我們可以把整個(gè) Form 表單寫成類似下面這個(gè):

// 位于 resources/views/users/_form.blade.php
name) }}" class="form-control">

這樣就大功告成啦!

最后

還是那句話:在表單處理的時(shí)候還是可以考慮一下 Form Package ,特別是你在處理

<del id="uose0"></del>
<ul id="uose0"></ul>
<ul id="uose0"></ul>
<fieldset id="uose0"><menu id="uose0"></menu></fieldset>
<