我有3个表(workflow、user、workflow_user),我想选择workflow_user表的view列。
class Workflow extends Model
{
public function user()
{
return $this->belongsToMany(User::class,'workflow_user');
}
}class User extends Model
{
public function works()
{
//return $this->belongsToMany(Role::class);
return $this->belongsToMany(Workflow1::class,'workflow_user');
}
}workflow_user表
class WorkflowUser extends Model
{
protected $table = 'workflow_user';
protected $fillable = [
'workflow1_id','user_id','view'
];
protected $primaryKey = 'id';
public $timestamps = false;
}为了从workflow_user表中获取数据,我这样做
$workflow = User::find($idconnect)->works()->orderBy('created_at','desc')->paginate(10);
当我发出这个请求时,它没有向我提供workflow_user(workflow1_id,user_id,view)表的数据。
发布于 2021-05-23 07:20:11
如果您有一个用于数据透视表的模型,则应该让它扩展Pivot类,并在关系的定义中使用它。
此外,您还需要在查询结果中手动包含不是外部in的字段。
class Workflow extends Model
{
public function user()
{
return $this->belongsToMany(User::class, 'workflow_user', 'workflow_id', 'user_id')
->using(WorkflowUser::class)
->withPivot(['id', 'view']);
}
}class User extends Model
{
public function works()
{
return $this->belongsToMany(Workflow::class, 'workflow_user', 'user_id', 'workflow_id')
->using(WorkflowUser::class)
->withPivot(['id', 'view']);
}
}workflow_user表
class WorkflowUser extends Pivot
{
protected $table = 'workflow_user';
protected $fillable = ['workflow_id', 'user_id', 'view'];
protected $primaryKey = 'id';
public $incrementing = true;
public $timestamps = false;
}$workflow = User::findOrFail($idconnect)
->works()
->orderBy('created_at', 'desc')
->paginate(10);https://stackoverflow.com/questions/67654863
复制相似问题