【发布时间】:2016-01-31 07:11:34
【问题描述】:
我正在尝试在保存模型之前对其进行验证。显然,如果模型无效,则不应将其保存到数据库中。当验证失败时,它会抛出异常并且不会继续保存。下面的工作:
$question = new Question([...]);
$question->validate();
$question->save();
我对 answers() hasMany 关系有疑问。根据this answer,我应该可以在关系对象上调用add():
$question = new Question([...]);
$question->answers()->add(new Answer([...]));
$question->validate();
$question->save();
以上失败:
Call to undefined method Illuminate\Database\Query\Builder::add()
我认为 answers() 函数会返回一个 HasMany 关系对象,但看起来我正在获得一个构建器。为什么?
【问题讨论】:
-
如果 answers 是一个关系,你会想要调用 $question->answers 而不是 $question->answers() (不要调用函数)。确保使用定义关系的函数的名称,而不是模型名称本身(如果它们相同就可以)。