Я пытаюсь добавить поле выбора в своем приложении, чтобы пользователь мог выбрать категорию для своей публикации.
Таблицы категорий и сообщений в моей базе данных являются отдельными, и в них есть столбец. category_id в сообщениях, которые являются внешним ключом к таблице категорий.
Мой блэйд создания для сообщений:
<div class="container">
<form method="POST" action="/posts">
{{csrf_field()}}
<div>
<label>Title</label>
<input type="text" name="title" required>
</div>
<div>
<label>Slug</label>
<input type="text" name="slug" required>
</div>
<div>
<label>Subtitle</label>
<input type="text" name="subtitle" required>
</div>
<div>
<label>Content</label>
<input type="text" name="content" required>
</div>
<div class="form-group">
<select class="form-control" name="categories_id">
@foreach($categories as $category)
<option value="{{$category->title}}">{{$category->title}}</option>
@endforeach
</select>
</div>
<div style="margin-top: 10px">
<input type="submit" value="Make Post">
</div>
</form>
</div>
функция хранения на моем контроллере сообщений:
public function store(Request $request)
{
$post = new Post();
$post->title = request('title');
$post->slug = request('slug');
$post->subtitle = request('subtitle');
$post->content = request('content');
$post->save();
return redirect('/posts');
}
и функция создания
public function create()
{
$categories = Category::all(['id','title']);
return view('posts.create',compact('categories',$categories));
}
и, наконец, моя модель
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
public $table = "posts";
}
В настоящее время, когда я пытаюсь выбрать вариант, я получаю
SQLSTATE [HY000]: общая ошибка: 1364 Поле 'category_id' не имеет значения по умолчанию.
Я не хочу, чтобы оно было нулевым. и каждый пост должен быть связан как минимум с 1 категорией