[英]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.