Les taules d'una base de dades sovint estan relacionades les unes amb les altres. Per exemple, un usuari pot estar associat a una professió i una professió pot tenir molts usuaris associats. Utilitzant l'ORM Eloquent podem fer que aquest procés sigui molt més fàcil, treballant amb les relacions directament dins dels nostres models (usant Programació Orientada a Objectes ) i creant mètodes personalitzats que ens evitaran haver de construir consultes de forma manual.
//laravel model amb relacio
//1.php artisan make:model Post
//2.php artisan make:model Post
//1.Post.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Spatie\Tags\HasTags;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class Post extends Model implements HasMedia
{
use HasTags;
use InteractsWithMedia;
protected $fillable = ['title', 'excerpt', 'content', 'img', 'url', 'youtube', 'category_id' ];
// Relación con el categories
public function category()
{
return $this->belongsTo(Category::class);
}
}
//2.Category
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Category extends Model
{
use HasFactory;
protected $fillable = ['name'];
public function posts()
{
return $this->hasMany(Post::class);
}
}
Editor del blog
nstal·lant PHP i l'instal·lador Laravel Abans de crear la vostra primera aplicació Laravel, assegureu-vos que la vostra màquina local tingui PHP , Composer i l'instal·lador Laravel instal·lats. A més, hauríeu d'instal·lar Node i NPM o Bun perquè pugueu compilar els actius d'interfície de la vostra aplicació.
Una manera adequada de nomenar aquesta consulta PDO podria ser "ObtenirPàginesPerCategoriaIEtiqueta" o "LlistarPàginesFiltrades". Aquest nom reflecteix que la consulta selecciona posts associats a una categoria i etiqueta específica. També pot ser útil considerar la claredat de la consulta en el context de l'aplicació, per exemple:
pagina /post/543 del projecte laravel12.test
pagina /post/317 del projecte larpreline.test
pagina /bootstrap_gallery del projecte larpreline.test
pagina indexgallery del projecte larpreline.test/