[英]How to use join in Laravel Eloquent?
我有以下兩個表。
users - id,name,title
posts - id,author
其中post.author = user.id
我的帖子模型如下。
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function users()
{
return $this->belongsTo('App\User');
}
}
我使用Project::find(1)->users
但是它給出了以下錯誤。
SQLSTATE[42S02]: Base table or view not found.
誰能幫忙嗎?
您可以將代碼更改為此:
class Post extends Model
{
public function user()
{
return $this->hasOne('App\User', 'id', 'author');
}
}
這將通過調用Post::find(1)->user->id
從數據庫中獲取用戶。
我建議將users
更改為user
因為一個帖子只能有一個作者。
希望這有效!
您的帖子模型..
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public function users()
{
return $this->belongsTo('App\User', 'author');
}
}
現在使用它作為..
Post::find(1)->users;
至於因為一個帖子只有一個創作者,您可以更改users
的方法Post
為模型user
,並把它作為
Post::find(1)->user;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.