Php 关联多个列时如何定义Laravel关系

Php 关联多个列时如何定义Laravel关系,php,laravel,eloquent,eloquent-relationship,Php,Laravel,Eloquent,Eloquent Relationship,我有下面提到的模型, 如何在其上实现laravel雄辩的关系 用户模型 id name id title desc created_by = foreign key on User->id id post_id assigned_by assigned_to post_id assigned_by = foreign key on User->id assigned_to = foreign key on User->id post_id assigned_by

我有下面提到的模型, 如何在其上实现laravel雄辩的关系

用户模型

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
后期模型

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
第一阶段(后期模型)

第二阶段(后期模型)

第三阶段(后期ThreeModel)

第四阶段(后期前模型)

第五阶段(后期车型)

第六阶段(后期模型)


关系可以指定它们使用的列:

public function assigner(){
    return $this->belongsTo(User::class, 'assigned_by');
}
public function assignee(){
    return $this->belongsTo(User::class, 'assigned_to');
}

关系可以指定它们使用的列:

public function assigner(){
    return $this->belongsTo(User::class, 'assigned_by');
}
public function assignee(){
    return $this->belongsTo(User::class, 'assigned_to');
}

用户模型应该有一个
hasMany
关系类型,如下所示:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
    //...
    public function posts() {
        return $this->hasMany(Post::class);
    }
}

用户模型应具有如下关系类型:

<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model {
    //...
    public function posts() {
        return $this->hasMany(Post::class);
    }
}

我通过定义以下关系来实现

在后期模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
在Post模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
在用户模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}

我是通过定义以下关系来实现的

在后期模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
在Post模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}
在用户模型中

id
name
id
title
desc
created_by = foreign key on User->id
id
post_id
assigned_by
assigned_to
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
post_id
assigned_by  = foreign key on User->id
assigned_to  = foreign key on User->id
public function assignedPost() {
    return $this->belongsTo(Post::class, 'post_id', 'post_id');
}

public function assigner()
{
    return $this->belongsTo(User::class, 'assigned_by', 'id');
}

public function assignee()
{
    return $this->belongsTo(User::class, 'assigned_to', 'id');
}
public function identifiedBy() {
    return $this->belongsTo(User::class, 'identified_by', 'id');
}

public function postAssignedBy() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_by' );
}

public function postAssignedTo() {
    return $this->hasManyThrough(User::class, PostStageOneModel::class, 'post_id', 'id', 'post_id', 'assigned_to' );
}
public function assigned()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_by', 'id');
}

public function assignedTo()
{
    return $this->hasMany(PostStageOneModel::class, 'assigned_to', 'id');
}

您好,杰夫,非常感谢您的努力,对于转让人,我得到了正确的结果,但是对于受让人,我得到了空值!谢谢你的努力。请看我的答案,让我知道,如果我能在这方面有所改进。你好,杰夫,非常感谢你的努力,对于转让人,我得到了正确的结果,但是对于受让人,我得到了零!谢谢你的努力。请看我的答案,让我知道,如果我能在这方面有所改进。谢谢你的努力。请看我的答案,如果我能在这方面有所改进,请告诉我。听起来正确“return$this->belongsTo(User::class,'assigned_by','id');”在与用户的关系中,您可以省略“id”(这是默认设置),我故意提到了所有内容,以便将来使用它的每个人都能更容易地理解它。谢谢,谢谢你的努力。请看我的答案,如果我能在这方面有所改进,请告诉我。听起来正确“return$this->belongsTo(User::class,'assigned_by','id');”在与用户的关系中,您可以省略“id”(这是默认设置),我故意提到了所有内容,以便将来使用它的每个人都能更容易地理解它。非常感谢。