Занимался этим очень долго, и я не могу понять это правильно. Был бы очень благодарен за помощь. Заранее спасибо! Я пытаюсь создать небольшой клон Reddit для обучения.
Я думаю, что эти модели подходят для того, что я пытаюсь сделать. Я могу сохранить Subreddit в БД с user_id. Но моя проблема в том, что я не могу публиковать сообщения в таблице сообщений, так как она говорит мне, что не может найти столбец subreddits_id. Мне кажется, что метод, который я пытаюсь вызвать, должен работать, но это не так.
protected $fillable = ['title', 'link','content', 'post_picture', 'user_id', 'subreddit_id'];
//Functions
public function user () {
return $this->belongsTo(User::class);
}
public function subreddit() {
return $this->belongsTo(Subreddit::class);
}
public function comments () {
return $this->hasMany(Comment::class);
}
Выше моя модель Post
protected $guarded = [];
//Functions
public function user () {
return $this->belongsTo(User::class);
}
public function posts () {
return $this->hasMany(Post::class);
}
public function comments () {
return $this->hasMany(Comment::class);
}
Выше моя модель Subreddit
public function posts () {
return $this->hasMany(Post::class);
}
public function subreddit() {
return $this->hasMany(Subreddit::class);
}
public function commments () {
return $this->hasMany(Comment::class);
}
Над моей моделью пользователя
Я думаю, что эти модели подходят для того, что я пытаюсь сделать. Я могу сохранить Subreddit в БД с user_id. Но моя проблема в том, что я не могу публиковать сообщения в таблице сообщений, так как она говорит мне, что не может найти столбец subreddits_id. Мне кажется, что метод, который я пытаюсь вызвать, должен работать, но это не так.
Метод Store выглядит следующим образом:
public function store(Request $request)
{ $data = request()->validate([
'title' => 'required',
'link' => 'required',
'content' => 'required',
]);
$post = auth()->user()->posts()->create($data);
return redirect('/home');
}
Я получаю эту ошибку Общая ошибка: 1364 Field ' subreddit_id 'не имеет значения по умолчанию (SQL: вставить в значения posts
(title
, link
, content
, user_id
, updated_at
, created_at
) (трепет, ew, мы, 2, 2020-04-01 17:41:29, 2020-04-01 17:41:29))