Crud com Laravel - #4 Read
11/01/2020Neste tutorial vamos fazer a leitura dos dados provenientes do banco de dados através do Laravel. Para isso, utilizaremos as tabelas users e book.
Lendo dados do banco com Laravel
Para exibição dos dados vindos do banco MySql, vamos pegar uma tabela do Bootstrap e jogar na nossa index.php. Ficará assim:
@extends('templates.template')
@section('content')
<h1 class="text-center">Crud</h1> <hr>
<div class="text-center mt-3 mb-4">
<a href="">
<button class="btn btn-success">Cadastrar</button>
</a>
</div>
<div class="col-8 m-auto">
<table class="table text-center">
<thead class="thead-dark">
<tr>
<th scope="col">Id</th>
<th scope="col">Título</th>
<th scope="col">Autor</th>
<th scope="col">Preço</th>
<th scope="col">Action</th>
</tr>
</thead>
<tbody>
@foreach($book as $books)
@php
$user=$books->find($books->id)->relUsers;
@endphp
<tr>
<th scope="row">{{$books->id}}</th>
<td>{{$books->title}}</td>
<td>{{$user->name}}</td>
<td>{{$books->price}}</td>
<td>
<a href="{{url("books/$books->id")}}">
<button class="btn btn-dark">Visualizar</button>
</a>
<a href="">
<button class="btn btn-primary">Editar</button>
</a>
<a href="">
<button class="btn btn-danger">Deletar</button>
</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
@endsection
O nosso BookController ficará da seguinte forma:
public function index()
{
$book=$this->objBook->all();
return view('index',compact('book'));
}
Para fazermos o relacionamento entre as classes vamos criar um método no model para isso. Dentro de User.php ficará assim:
public function relBooks()
{
return $this->hasMany('App\Models\ModelBook','id_user');
}
Dentro de ModelBook.php ficará assim:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class ModelBook extends Model
{
protected $table = 'book';
public function relUsers()
{
return $this->hasOne('App\User','id','id_user');
}
}
Para ordernar os dados na tabela de forma crescente ou decrescente, basta na variável $book do método index adicionar o método sortBy, assim:
$book=$this->objBook->all()->sortBy('title');
Sucesso nos códigos e na vida!
Posts Relacionados
Crud com Laravel - #3 Banco de Dados
Na aula de hoje trabalharemos com a criação do banco de dados para uso em conjunto com o framework de PHP Laravel.
Crud com Laravel - #5 Read II
Na aula de hoje trabalharemos com o método show do nosso ResourceController. Esse método é capaz de exibir os dados detalhados de cada registro.