Heim >Backend-Entwicklung >PHP-Tutorial >laravel Eloquent ORM – Relevanz

laravel Eloquent ORM – Relevanz

WBOY
WBOYOriginal
2016-10-11 14:23:371215Durchsuche

Tabellenstruktur

<code>posts
    id - integer
    title - string
    body - text

comments
    id - integer
    post_id - integer
    user_id - integer
    body - text
users
    id - integer
    name - string
    phone - integer
    sex - integer
    
comment_likes
    id - integer
    comment_id - integer
    user_id - integer</code>

Verwenden Sie laravel Eloquent ORM

<code><?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model
{
     /**
     * @var string
     */
    protected $table = 'posts';

    public function comments()
    {
        return $this->belongsTo('App\Comments', 'post_id', 'id');
    }
}</code>

Ich hoffe, dass wir bei der Abfrage der Nachrichteninformationen von posts alle Informationencomments von user_id über userss

abfragen können

Antwortinhalt:

Tabellenstruktur

<code>posts
    id - integer
    title - string
    body - text

comments
    id - integer
    post_id - integer
    user_id - integer
    body - text
users
    id - integer
    name - string
    phone - integer
    sex - integer
    
comment_likes
    id - integer
    comment_id - integer
    user_id - integer</code>

Verwenden Sie laravel Eloquent ORM

<code><?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Posts extends Model
{
     /**
     * @var string
     */
    protected $table = 'posts';

    public function comments()
    {
        return $this->belongsTo('App\Comments', 'post_id', 'id');
    }
}</code>

Ich hoffe, dass wir bei der Abfrage der Nachrichteninformationen von posts alle Informationencomments von user_id über userss

abfragen können

Comment.php

<code>class Comment extends Model {
    public function user () {
        return $this->hasOne('App\User', 'id', 'user_id');
    }
}</code>

Beim Lesen mit

<code>$posts = Post::where(....)->with(['comments' => function($query) {
    $query->with('user');
}])->get();

foreach($posts $post)
    foreach($post->comments as $comment)
        echo $comments->user->name;</code>

Normalerweise geschieht dies durch die Verwendung von „spart Leistung“,


Wenn Ihnen die Leistung egal ist, können Sie es wie folgt tun. Aber ich gebe dir 0 Punkte. Lernen Sie nicht aus Folgendem

<code>$posts = Post::find(1);
foreach ($posts->comments as $comment)
    echo $comment->user->name;</code>

Warum? Schauen Sie sich den Unterschied bei der Verwendung von mit im ORM-Tutorial an, das ich geschrieben habe
http://www.load-page.com/base...

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn