我是个处理幼体的新手,我被困在某个地方
我有这样的场景,我正在努力获得正确的关系,我希望有人能给我一些启发:)
我有两个模型: Order和User。我有两种类型的用户。客户和专业人士。当客户下订单时,会分配给5名专业人员。
我创建了一个数据透视表' order _user',来处理每个订单所选择的专业人员。
哦,我不能把用户分为客户和专业人员,因为专业人员也可以充当客户,从其他类型的专业人员那里订购服务。
这些是我认为我会添加到两个模型中的关系代码片段(可能根本不起作用)
在我的用户模型上:
客户端用户订购
public function orders(){
return $this->hasMany('App\Orders');
}专业用户分配的订单
public function assigned_orders(){
return $this->belongsToMany('App\Order', 'order_user', 'order_id', 'user_id');
}在我的订单模型上:
订单创建者用户
public function user(){
return $this->belongsTo('App\User');
}分配给该订单的用户
public function assigned_users(){
return $this->belongsToMany('App\User', 'order_user', 'order_id', 'user_id');
}这有什么意义吗?
作为一名专业人员,我如何检索分配给我的订单?
如果还有其他需要修改的地方,请告诉我
感谢你们所有人的参与!
发布于 2016-08-27 06:02:29
我认为你可以简化你的设置--
在您的用户模型中:
public function orders(){
return $this->belongsToMany('App\Order', 'order_user', 'order_id', 'user_id');
}在您的订单模型中:
public function users(){
return $this->belongsToMany('App\User', 'order_user', 'order_id', 'user_id');
}然后,要检索“您的”分配的订单,您需要做的就是:
$my_orders = User::find(Auth::user()->id)->orders;如果你想在你的订单模型中保留“所有者”的概念:
public function owner(){
// references owner_id
return $this->belongsTo('App\User');
}https://stackoverflow.com/questions/39175032
复制相似问题