簡體   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