我试图存储一个简单的形式到我的数据库。我的模型是我有工作,其中每个工作可以包含几个任务。因此,我的模型看起来像这样:
用户
public function jobs()
{
return $this->hasMany(Job::class);
}
工作
public function user()
{
return $this->belongsTo(User::class);
}
public function tasks()
{
return $this->hasMany(Task::class);
}
任务
public function job()
{
return $this->belongsTo(Job::class);
}
当我现在想在TaskController.php中存储以下代码:
$request->user()
->jobs()
->tasks()
->create($validated);
我得到错误:
调用未定义的方法Illuminate\Database\Eloquent\Relations\HasMany::tasks()
我很确定我正在做一个新手错误通过$请求,但不能弄清楚。谢谢你的任何帮助!
2条答案
按热度按时间gdrx4gfi1#
您的问题是在
jobs
上调用tasks
,但是jobs()
是一个关系,而不是模型或集合。要解决这个问题,你必须逐一检查:
或者,可以尝试使用“具有多个通过”。
dwbf0jvd2#
调用关系函数(
$request->user()->jobs()
)将得到关系类(Illuminate\Database\Eloquent\Relations\HasMany
),而不是集合本身,像$request->user()->jobs
那样访问将得到作业集合。