Maison  >  Article  >  base de données  >  Comment récupérer des articles avec des informations sur la catégorie et l'utilisateur à l'aide d'Eloquent ?

Comment récupérer des articles avec des informations sur la catégorie et l'utilisateur à l'aide d'Eloquent ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-13 06:42:02967parcourir

How to Retrieve Articles with Category and User Information using Eloquent?

Approche éloquente pour joindre trois tables

Problème :

Considérez trois tables : articles, Catégories et utilisateurs. L'objectif est de récupérer les articles avec leur nom de catégorie et leur nom d'utilisateur au lieu de leurs identifiants respectifs.

Solution :

Eloquent propose une méthode simple pour récupérer des données relationnelles.

Définition du modèle :

// Article.php
namespace App\Models;

use Eloquent;

class Article extends Eloquent {
    protected $table = 'articles';

    public function user() {
        return $this->belongsTo('App\Models\User');
    }

    public function category() {
        return $this->belongsTo('App\Models\Category');
    }
}


// Category.php
namespace App\Models;

use Eloquent;

class Category extends Eloquent {
    protected $table = "categories";

    public function articles() {
        return $this->hasMany('App\Models\Article');
    }
}


// User.php
namespace App\Models;

use Eloquent;

class User extends Eloquent {
    protected $table = 'users';

    public function articles() {
        return $this->hasMany('App\Models\Article');
    }
}

Requête éloquente :

Pour récupérer des articles avec des informations sur la catégorie et l'utilisateur :

$article = \App\Models\Article::with(['user','category'])->first();

Utilisation :

Pour accéder aux données associées :

$article->user->user_name  //Retrieve user name
$article->category->category_name  //Retrieve Category name

Autres exemples :

  • Récupérer tous les articles d'une catégorie :
$categories = \App\Models\Category::with('articles')->get();
  • Récupérer tous les articles d'un utilisateur spécifique :
$users = \App\Models\Category::with('users')->get();

Ressources supplémentaires :

  • Documentation éloquente de Laravel : http://laravel.com/docs/5.0/eloquent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn