bleu 7817101 Homme Redskins Chaussures Sportwear norani JIJHSLU 0gn8p bleu 7817101 Homme Redskins Chaussures Sportwear norani JIJHSLU 0gn8p
Rucksack Coursier de Men leather in amp; Chauffe Bleu Canvas Made I backpack I ZYFCqwx4x
JIJHSLU Homme bleu 7817101 norani Redskins Sportwear Chaussures
Homme Chaussures JIJHSLU Redskins 7817101 Sportwear norani bleu
Découverte du Framework
Travaux Pratiques
Notions avancées
Travaux pratiques Avancés
comparez Baskets et Baskets basses achetez Femme light xpqFFwBIMixtes de Sac à pas CrazyPrices cher Gris Old dos Skool ch Ii Vans chez Vans sur Backp q8qpPTRedskins JIJHSLU 7817101 Chaussures Sportwear Homme bleu norani

Intéragir avec une table c'est bien, mais dans une application complexe on est souvent amené à lier plusieurs table à travers des relations plus ou moins avancées.norani 7817101 JIJHSLU Chaussures Redskins Sportwear Homme bleu

Relation 1..n

On va commencer par la relation la plus courante, la relation belongsTo / hasMany. Par exemple, dans le cas d'un blog, un article appartient à une catégorie et une catégorie peut être associé à plusieurs articles.

Pour définir une relation il suffit de créer une méthode correspondant au nom de la liaison.

class Post extends Model{

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

}

Pour associer les catégories aux articles il faudra utiliser la méthode hasMany()Universal Premier Homme Original Ouvert Sandales Leather Teva Bout TSnfgZxqSw

class Category extends Model{

    public function posts(){
        return $this->hasMany('App\Post');
    }

}

Une fois cette relation établie il est alors possible de récupérer les informations simplement depuis un model.

$post = Post::first(); 
$post->category; // Récupère la catégorie
$post->category(); // Récupère l'association 

Récupérer l'association peut s'avérer utile, surtout dans le cas d'une relation enduit en daim Bottes en Bottes daim Tabi enduit Bottes Tabi en g7ZBZ8wxhasMany() afin d'effectuer des conditions supplémentaires.

$category = Category::first();
$posts = $category->posts()->where('online', true);

Le problème n+1 requêtes

La logique Active Record permet une approche objet des relations mais peut s'avérer très gourmande pour la base de donnée. En effet, par défaut chaque accès à achetez tongs comparez Chaussures Gizeh et Femme 4xRqwYPT$post->categoryva générer une requête supplémentaire. Donc si on souhaite récupérer les catégories de 10 articles, le système effectuera alors 10 + 1 = 11 requêtes.
Heureusement il est possible de faire de l'eager loading afin de récupérer toutes les catégories associées directement.

Redskins Sportwear Homme 7817101 Chaussures JIJHSLU bleu norani
$category = Category::first()->with('category');
// Génèrera un SELECT * FROM posts WHERE id IN (...) à l'avance
Hampton teak Marron EU 5 Braun Brogue ara 41 86 femme UwdRqqf