Crud com Laravel - #13 Atualização para Laravel 8
13/12/2020Nesse 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
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.
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.