все, у меня есть таблица статусы с полями id
, user_id
, parent_id
, body
.
теперь таблица состояния имеет отношения с пользователем, как это:Обновление BelongsTo Отношения в Laravel 5,3
Статус Модель
public function user() {
return $this->belongsTo('App\User', 'user_id');
}
public function scopeNotReply($query) {
return $query->whereNull('parent_id');
}
public function replies() {
return $this->hasMany('App\Status', 'parent_id');
}
пользователя Модель
public function statuses() {
return $this->hasMany('App\Status', 'user_id');
}
, но, к сожалению, я не могу получить доступ к user_id
когда Я хочу ответить на статус и сохранить в базе данных с той же таблицей statuses
. Я использую метод associate
и StatusController, как это:
public function postReply(Request $request, $statusId){
$this->validate($request, [
"reply-{$statusId}" => 'required|max:1000',
]);
$status = Status::notReply()->find($statusId)->first();
$reply = Status::create([
'body' => $request->input("reply-{$statusId}"),
])->user()->associate(Auth::user());
$status->replies()->save($reply);
return redirect()->back();
}
каждый раз, когда я пытаюсь ответить статус, я получил сообщение об ошибке SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value
.
Может ли кто-нибудь помочь мне решить эту проблему ??
Спасибо
Благодарим вас за ответ, но я все равно получаю такое же сообщение об ошибке. – Arta