99_3_project form入力, laravel colletive, validation - hpscript/laravel GitHub Wiki
php composer.phar require laravelcollective/html
.config/app.php
Collective\Html\HtmlServiceProvider::class,
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
view: resources/view/admin/users/
create.blade.php
<h1>Create Users</h1>
{!! Form::open(['method'=>'POST', 'action'=>'AdminUsersController@store', 'files'=>true]) !!}
{{ csrf_field()}}
<div class="form-group">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Create Post', ['class'=>'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
AdminUsersController.php
テーブルからリストを呼び出す
public function create()
{
//
$roles = Role::lists('name','id')->all();
return view('admin.users.create', compact('roles'));
}
create.blade.php
array(''=>'Choose Options') + $rolesとして、rolesテーブルから自動的にselect文を生成する
{!! Form::open(['method'=>'POST', 'action'=>'AdminUsersController@store', 'files'=>true]) !!}
{{ csrf_field()}}
<div class="form-group">
{!! Form::label('name', 'Name') !!}
{!! Form::text('name', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('email', 'Email') !!}
{!! Form::email('email', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('role_id', 'Roles') !!}
{!! Form::select('role_id',array(''=>'Choose Options') + $roles, null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('status', 'Status') !!}
{!! Form::select('status',array(1 => 'Active', 0 =>'Not Active'), null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::label('password', 'Password') !!}
{!! Form::password('password', null, ['class'=>'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Create Post', ['class'=>'btn btn-primary']) !!}
</div>
{!! Form::close() !!}
$ php artisan make:request UsersRequest
Request/UsersRequest.php
※authorizeをfalseのままだとforbiddenに遷移します
public function authorize()
{
return true;
}
public function rules()
{
return [
'name' => 'required',
'email' => 'required',
'role_id' => 'required',
'password' => 'required'
];
}
Controller: AdminUsersRequest.php
use App\Http\Requests\UsersRequest;
public function store(UsersRequest $request)
{
return $request->all();
}
create.blade.php
@if(count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach($errors->all() as $error)
<li>{{$error}}</li>
@endforeach
</ul>
</div>
@endif
@include('includes.form_error')