雄辩的数据透视表具有不同的列名

han*_*ome 8 php eloquent

用户表

- id
- name (string)
Run Code Online (Sandbox Code Playgroud)

访问表

- id
- user_id
- viewer_id 
Run Code Online (Sandbox Code Playgroud)

我想获取具有给定用户的链接用户名的访问列表(在这种情况下,id = 1)

$visits = \Visits::where(['user_id' => 1])->with('user')->get();
Run Code Online (Sandbox Code Playgroud)

这是我的造访模式:

class Visits extends Model
{

    protected $table = 'visits';

    public function store(Request $request)
    {
        $visits = new Visits;
        $visits->save();
    }

    public function user()
    {
        return $this->belongsTo('User', 'viewer_id');
    }

}
Run Code Online (Sandbox Code Playgroud)

这是我的用户模型

use Illuminate\Database\Eloquent\Model;

class User extends Model
{

    public function store(Request $request)
    {
        $user = new User;
        $user->save();
    }

}
Run Code Online (Sandbox Code Playgroud)

它返回数据,但“用户”为

Dha*_*ada 4

我认为你需要稍微改变一下你的代码。请尝试以下操作:

public function user()
{
    return $this->belongsTo('App\User', 'viewer_id', 'id');
}

$visits = \Visits::where(['user_id' => 1])->with('user')->get();
Run Code Online (Sandbox Code Playgroud)