我花了两天时间做了一件非常简单的小事。我有一个名为User的模型,它有一个用户注释关系。
在用户模型方面,我定义了belongsTo关系,然后用户的模型定义了一个关系的hasOne。
我使用的表单绑定到$user
模型,同时UserNote模型有自己的表,用user_id映射到用户。
我一直试图得到下面显示的内容;
{{ Form::textarea($user->notes, null , [ 'class' => 'form-control', 'placeholder' => 'Note Content']) }}
有人帮我解决这个问题吗?b我需要的是能够添加一个注释,如果用户没有注释我不应该收到错误,因为如果我这样做,我会收到一个错误:
{{ Form::textarea('UserNote[content]',... }}
您的建议将不胜感激。
class User{
...
public function note()
{
return $this->belongsTo(UserNote::class);
}
}
class UserNote{
protected $fillable = ['content', 'user_id'];
...
public function user()
{
return $this->hasOne(User::class, 'user_id');
}
}
$fillable
中的user_id当然不应该在那里,因为这只意味着我可以手动更新此表,而我希望从控制器自动完成所有操作以形成绑定。
答案 0 :(得分:0)
首先,你做错了关系。
所以,你要交换那些相应模型的关系。
其次,表单的textarea具有如下参数列表:
public function textarea($name, $value = null, $options = []){}
因此,第一个参数显然是 form_name 。第二个参数将是输入的值。你做错了。
在你的情况下,这应该是(我认为)
{{ Form::textarea('user_note', $user->note , [ 'id' => 'user_note', 'class' => 'form-control', 'placeholder' => 'Note Content']) }}
修改强>
属性 note 是方法名称,您之前写的是 notes ,该方法不存在。
修改结尾
希望这可以帮助。快乐的编码!