Laravel에서 양식을 우아하게 처리

藏色散人
풀어 주다: 2019-10-23 22:59:55
앞으로
5080명이 탐색했습니다.

Laravel 애플리케이션을 개발할 때 일반적으로 Laravel의 Form 폼을 우아하게 처리하고 재사용하는 방법과 관련하여 다음은 약간의 생활 경험입니다.

#🎜🎜 #Use 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(&#39;name&#39;, &#39;Name&#39;) !!}
    {!! Form::text(&#39;name&#39;) !!}
</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 속성의 값을 자동으로 채웁니다.

두 번째 요점은 $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>
로그인 후 복사

그리고 끝났습니다!

Finally

여전히 같은 문장: 양식을 처리할 때 여전히 고려할 수 있습니다.

Form Package

, 특히