繁体   English   中英

如何在Laravel Eloquent中使用join?

[英]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因为一个帖子只能有一个作者。

希望这有效!

这应该改变

Project::find(1)->users

对此

Post::find(1)->users

读这个

  1. 找不到基本表或视图:1146表Laravel 5

您的帖子模型..

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM