Php 关联多个列时如何定义Laravel关系
我有下面提到的模型, 如何在其上实现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
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”(这是默认设置),我故意提到了所有内容,以便将来使用它的每个人都能更容易地理解它。非常感谢。