Crud com Laravel - #8 Edit
01/02/2020Na vídeoaula de hoje trataremos da parte do update no Crud com Laravel, editando os dados cadastrados no banco de dados MySql.
Update com Laravel
Na resource/index.blade.php vamos colocar o link para a página de edição:
<a href="{{url("books/$books->id/edit")}}">
<button class="btn btn-primary">Editar</button>
</a>
No nosso BookController.php vamos implementar o método edit:
public function edit($id)
{
$book=$this->objBook->find($id);
$users=$this->objUser->all();
return view('create',compact('book','users'));
}
Repare que o link está enviando para o create.blade.php. Agora vamos implementar essa view para receber os dados de edição.
@extends('templates.template')
@section('content')
<h1 class="text-center">@if(isset($book)) Editar @else Cadastrar @endif</h1> <hr>
<div class="col-8 m-auto">
@if(isset($errors) && count($errors)>0)
<div class="text-center mt-4 mb-4 p-2 alert-danger">
@foreach($errors->all() as $erro)
{{$erro}}<br>
@endforeach
</div>
@endif
@if(isset($book))
<form name="formEdit" id="formEdit" method="post" action="{{url("books/$book->id")}}">
@method('PUT')
@else
<form name="formCad" id="formCad" method="post" action="{{url('books')}}">
@endif
@csrf
<input class="form-control" type="text" name="title" id="title" placeholder="Título:" value="{{$book->title ?? ''}}" required><br>
<select class="form-control" name="id_user" id="id_user" required>
<option value="{{$book->relUsers->id ?? ''}}">{{$book->relUsers->name ?? 'Autor'}}</option>
@foreach($users as $user)
<option value="{{$user->id}}">{{$user->name}}</option>
@endforeach
</select><br>
<input class="form-control" type="text" name="pages" id="pages" placeholder="Páginas:" value="{{$book->pages ?? ''}}" required><br>
<input class="form-control" type="text" name="price" id="price" placeholder="Preço:" value="{{$book->price ?? ''}}" required><br>
<input class="btn btn-primary" type="submit" value="@if(isset($book)) Editar @else Cadastrar @endif">
</form>
</div>
@endsection
Posteriormente vamos trabalhar no método update:
public function update(BookRequest $request, $id)
{
$this->objBook->where(['id'=>$id])->update([
'title'=>$request->title,
'pages'=>$request->pages,
'price'=>$request->price,
'id_user'=>$request->id_user
]);
return redirect('books');
}
Sucesso nos códigos e na vida!
Posts Relacionados
Crud com Laravel - #7 Validações
Nesse tutorial iremos realizar as validações no formulário do nosso CRUD com Laravel. Nossa validação abrigará tanto o front quanto o backend.
Crud com Laravel - #9 Delete
Na aula de hoje realizaremos a parte de delete no sistema de Crud com Laravel. Para isso, utilizaremos o PHP com Ajax.