国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Laravel éloquent sur la fa?on de rejoindre une requête
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-16 16:51:58
0
6
1437

Hypothèse

One Piecethread(帖子) 預加載 comments(評論)和 comments.user (utilisateur qui a commenté)

Habituellement, vous pouvez l'obtenir avec une seule ligne de code

$thread = Thread::with('comments', 'comments.user')->first();

Cela ne pose aucun problème, et cela peut être très bien interrogé et affiché.

$comment = $thread->comments[0]; // Comment Model
$user = $comment->user; // User Model

Mais la demande actuelle est la suivante?: si les données d'un utilisateur qui ont commenté sont supprimées, les données de commentaire naturellement liées ne peuvent pas être affichées, sinon les informations seront incomplètes (est-ce une demande normale, n'est-ce pas??)

Alors logiquement, il n'y a que inner join 查詢就可以過濾掉不符合的數(shù)據(jù).
LaravelEloquent 目前我只查到withméthode

Ce besoin peut être facilement résolu grace à YiiActiveRecord

$thread = Thread::find()->innerJoinWith(['comments', 'comments.user'])->one();

Je ne le connais pas très bien, je souhaite donc demander à un expert dans ce domaine comment le résoudre?!Laravel

PHP中文網(wǎng)
PHP中文網(wǎng)

認證高級PHP講師

répondre à tous(6)
習慣沉默

La jointure dans le générateur de requêtes dans Laravel adopte par défaut le comportement de la jointure interne, le manuel le dit

給我你的懷抱
$thread = Thread::with(['comments' => function ($query) {
    $query->whereNotNull('user');
}, 'comments.user'])->first();
巴扎黑

Eloquent ORM n'a pas de conditions de requête de jointure directe, mais il existe des solutions de contournement, comme mentionné ci-dessus.
Mais je n'utilise généralement pas ORM pour des raisons de performances. J'utilise le générateur de requêtes.

洪濤

\DB::('threads')
       ->where(['threads.id'=>$id])
       ->leftJoin("comments",'therads.id','=','comments.tid')
       ->paginate() 
巴扎黑

écrivez simplement join in the relation, ->hasMany()->join()->where() Vous pouvez l'écrire comme vous le souhaitez.

世界只因有你

En fait, ce que je demande concerne principalement l'utilisation. Ce type de demande est très courant. Je demande principalement s'il y a des questions à cet égard

.

Ceci est implémenté dans rails
Et laravel actuellement, je n'en vois qu'un seul avecrails里都是有實現(xiàn)的
laravel 目前我看到的只有一個with

rails里有 preloadincludesEager load、Joins, 可以來區(qū)別eager loading數(shù)據(jù)的方式.
這里有篇文章來講解
http://www.mamicode.com/info-...

YiiActiveRecord也有with, joinWith(inner join, left join ....) innerJoinWith, 來根據(jù)需求做eager loading

其他的我就不查了. 并不是我要損laravel, 我是到現(xiàn)在也沒有覺得laravelEloquent

rails a précharge, inclut, Charge impatiente, Joins, vous pouvez venir ici Différentes manières de charger avec impatience les données.
Voici un article pour expliquer
http://www.mamicode.com/info-...?? ??Et ActiveRecord de Yii a également with, joinWith (jointure interne, jointure gauche....) innerJoinWith, pour effectuer un chargement rapide selon les besoins?? ??Je ne vérifierai pas d'autres choses. Ce n'est pas que je veuille endommager laravel, mais je ne pense toujours pas que éloquent de laravel. est si puissant.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal