我是laravel的新手,正在尝试创建我的第一个应用程序。
我有三种不同的课程:用户,活动和讲座。
用户能够创建活动和讲座。
每个活动都有其技术经理,产品经理和活动经理,并且用户可以注册活动。
每个讲座都有其讲师,并且用户可以注册该讲座。
我想创建必要的雄辩的关系,但是我不确定用户是否应该属于该活动,反之亦然。
我已经实现了我的目标之一(在用户和活动经理之间建立关系),但是我对其余目标感到困惑,觉得这不是实现目标的最佳方法。
在那一刻,我的代码如下:
App \ Activity:
class Activity extends Model
{
protected $guarded = [];
public function TechnicalManager(){
return $this->belongsTo('App\User','technical_manager');
}
public function ActivityManager(){
return $this->belongsTo('App\User','activity_manager');
}
public function ProductManager(){
return $this->belongsTo('App\User','product_manager');
}
public function Enrollers(){
return $this->belongsToMany('App\User','user_activity');
}
}
App \ User:
class User extends Authenticatable
{
use Notifiable;
public function activities(){
return $this->belongsToMany('App\Activity','id');
}
}
答案 0 :(得分:0)
如果您打算使用Eloquent的关系,则该想法将是:
只要您使用模型,在模型的两面编写关系都不会出错。如果您不打算使用它们,那么为什么要使用它们?
了解情况:
查找用户,它是活动,谁是活动的技术经理和活动经理
User::with(['activities','activities.TechnicalManager','activities.ActivityManager'])->find($id)