表結構
<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>
使用 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>
希望 在查詢 posts
的 留言資訊的時候, 一起透過 comments
的 user_id
的查詢到 users
所有的資訊
表結構
<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>
使用 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>
希望 在查詢 posts
的 留言資訊的時候, 一起透過 comments
的 user_id
的查詢到 users
所有的資訊
Comment.php
<code>class Comment extends Model { public function user () { return $this->hasOne('App\User', 'id', 'user_id'); } }</code>
讀取時 with
<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>
一般是這麼弄的,使用with比較省性能,
如果你對效能不在乎,可以如下這麼弄。不過我會給你0分。 不要學下面
<code>$posts = Post::find(1); foreach ($posts->comments as $comment) echo $comment->user->name;</code>
為什麼?看看我寫的ORM的教程中對使用with的區別
http://www.load-page.com/base...