我建立了以下关系:
类页面{公共函数注释(){return$this->hasMany('Comment');}}类注释{公共函数页(){return$this->belongsTo('Page');}}
相当标准的沼泽。一个页面可以有多条评论,一条评论属于一个页面。
我想创建一个新页面:
$page=新页面;
和评论
$comment=新评论;
并将评论附在页面上,没有保存任何内容
$page->comments->associate($comment);
我尝试了以下方法:
//这些是来自many端的一对多(例如$comment->page->associate…)$page->comments->associate($comment);//调用未定义的方法Illuminate\Database\Eloquent\Collection::associate()$page->comments()->关联($comment);//调用未定义的方法Illuminate\Database\Query\Builder::associate()//这两个是多对多的关系,所以不起作用$page->comments->attach($comment);//调用未定义的方法Illuminate\Database\Eloquent\Collection::attach()$page->comments()->附加($comment);//调用未定义的方法Illuminate\Database\Query\Builder::attach()//这2个将(如果成功)保存到数据库,我不想这样$page->comments->save($comment);//调用未定义的方法Illuminate\Database\Eloquent\Collection::save()$page->comments()->保存($comment);//完整性约束冲突:1048列“page_id”不能为空
真正奇怪的是,做相反的事情(将页面附加到评论)效果正确:
$comment->page()->关联($page);
相关文件如下在这里但他们没有提到一对多的一方。这有可能吗?(我觉得应该是这样)