Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Crud com Laravel - #13 Atualização para Laravel 8

13/12/2020

Nesse tutorial vamos fazer uma revisão de todo o CRUD usando Laravel, porém agora utilizando a versão 8 desse framework de PHP.

Operações CRUD no Laravel 8

Vamos começar pela instalação:

cd c:/wamp64
composer create-project laravel/laravel www

routes/web.php

Precisamos ajustar a rota resource para o novo padrão:

use App\Http\Controllers\BookController;

Route::resource('/books', BookController::class);

database/migrations/bookmigration

Precisamos alterar a forma de criação do id e da foreign key:

 public function up()
{
    Schema::create('book', function (Blueprint $table) {
        $table->id();
        $table->unsignedBigInteger('id_user');
        $table->foreign('id_user')->references('id')->on('users')->onDelete('cascade')->onUpdate('cascade');
        $table->string('title');
        $table->integer('pages');
        $table->double('price',10,2);
        $table->timestamps();
    });
}

app/Models/User.php

Vamos ajustar a função de relacionamento do model User:

public function relBooks()
{
    return $this->hasMany('App\Models\Models\ModelBook','id_user');
}

app/Models/Models/ModelBook.php

Precisamos ajustar também a função de relação do ModelBook:

<?php

namespace App\Models\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class ModelBook extends Model
{
    use HasFactory;
    protected $fillable=['title','id_user','pages','price'];
    protected $table='book';

    public function relUsers()
    {
        return $this->hasOne('App\Models\User','id','id_user');
    }
}

app/Http/Controllers/BookController.php

Foram necessárias algumas alterações no BookController, portanto ele segue na íntegra abaixo:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Models\ModelBook;
use App\Models\User;
use App\Http\Requests\BookRequest;

class BookController extends Controller
{
    public function index()
    {
        $book=ModelBook::all();
        return view('index',compact('book'));
    }

    public function create()
    {
        $users=User::all();
        return view('create',compact('users'));
    }

    public function store(BookRequest $request)
    {
        $cad=ModelBook::create([
            'title'=>$request->title,
            'pages'=>$request->pages,
            'price'=>$request->price,
            'id_user'=>$request->id_user
        ]);
        if($cad){
            return redirect('books');
        }

    }

    public function show($id)
    {
        $book=ModelBook::find($id);
        return view('show',compact('book'));
    }

    public function edit($id)
    {
        $book=ModelBook::find($id);
        $users=User::all();
        return view('create',compact('book','users'));
    }

    public function update(Request $request, $id)
    {
        ModelBook::where(['id'=>$id])->update([
            'title'=>$request->title,
            'pages'=>$request->pages,
            'price'=>$request->price,
            'id_user'=>$request->id_user
        ]);
        return redirect('books');
    }

    public function destroy($id)
    {
        $del=ModelBook::destroy($id);
        return($del)?"sim":"não";
    }
}

Por hoje é só! Sucesso nos códigos e na vida!

Precisa de um professor? webdesignemfoco@gmail.com

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Crud com Laravel - #12 Laravel com SQL Server
Nesse tutorial vou ensinar como integrar o framework Laravel ao Sistema de Gerenciamento de Banco de Dados da Microsoft - SQL Server.
Saiba mais!
Cadastro e Login com Laravel - #01 Introdução e Requisitos
Hoje iniciamos o curso de Cadastro e Login com Laravel. Nesse curso aprenderemos como construir um sistemam completo, inclusive com níveis de acesso.
Saiba mais!
Crud
Nesse curso aprenderemos como desenvolver uma ClassCrud com conexão ao banco de dados mysql através dos conectores PDO e MYSQLi.
Saiba mais!