ホームページ  >  記事  >  PHPフレームワーク  >  Laravel でフォームを適切に処理する

Laravel でフォームを適切に処理する

藏色散人
藏色散人転載
2019-10-18 14:53:475077ブラウズ

Laravel アプリケーションを開発する場合、通常はフォーム処理が必要になります。Laravel のフォーム フォームをエレガントに処理して再利用する方法については、次のような小さな人生経験があります:

フォーム パッケージを使用する

ネイティブ 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(&#39;name&#39;, &#39;Name&#39;) !!}
    {!! Form::text(&#39;name&#39;) !!}
</div>

上記によって生成された 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 属性の値がある場合、フォームがこの値は、手動で記述する必要がなく、自動的に入力されます。

2 番目のポイントは、$user を Form::model() に渡しているため、コントローラーで次の小さなトリックを使用できることです。

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

この場合、次のようになります。編集および追加時に競合が発生しない 編集および更新時には名前の値が存在しますが、追加時には名前の値は必要ありません。したがって、フォーム全体を次のように書くことができます:

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

これで完了です。

最後に

#これも同じ文です。フォームを処理するとき、特に Form Package を考慮することができます。の場合、 フォーム パッケージ が見つかりません。

Laravel 関連の技術記事の詳細については、Laravel Framework Getting Started Tutorial 列にアクセスして学習してください。

以上がLaravel でフォームを適切に処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcodecastsで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。