Can anyone help with my error? SQLSTATE[22007]: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'Choose One' for column webkopegmar.pages.pages_category_id at row 1 (SQL: insert into pages (pages_category_id, name, slug, content, thumbnail, updated_at, created_at) values (Choose One, test pages 1, tes-pages-1, ties1, 25-04-2024.button copy2.png, 2024-04-25 05:33:29, 2024-04-25 05:33:29))
can anyone help me how to solve this
Incorrect integer value: 'Choose One'
You are attempting to write Choose One into a column that accepts INT type.
I would guess that you have a options in a form and the default option is Choose One? You could have caught this with appropriate use of validation. Can you show the relevant code (view and controller)?
@tykus
this form create
<div class="card">
<div class="card-body">
<a href="/pages" class="btn btn-success mb-3"> Back To Pages</a>
<div class="row">
<div class="col-12">
<form action="{{ route('pages.create') }}" method="post" enctype="multipart/form-data">
{{ csrf_field() }}
@csrf
<div class="form-group">
<label>Page Category</label>
<select name="pages_category_id" class="form-control select2" style="width: 100%;" required>
<option selected="selected">Choose One</option>
@foreach ($pagesCategory as $pag)
<option value="{{ $pag->id }}"> {{ $pag->name }} </option>
@endforeach
</select>
</div>
<div class="form-group">
<label>Name</label>
<input type="text" name="name" id="name" class="form-control" placeholder="Name" required @error('name') is-invalid @enderror value="{{ old('name') }}">
@error('name')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="mb-3">
<label for="slug" class="form-label">Slug</label>
<input type="text" class="form-control" id="slug" name="slug" placeholder="slug" @error('slug') is-invalid @enderror value="{{ old('slug') }}">
@error('slug')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label for="content" class="form-label">Content</label>
@error('content')
<p class="text-danger">{{ $message }}</p>
@enderror
<textarea input="content" name="content" id="content" class="form-control ckeditor" cols="30" rows="15"></textarea>
</div>
<div class="form-group">
<label for="formFile" class="form-label">Thumbnail</label>
<input class="form-control" type="file" name="thumbnail" id="thumbnail">
@error('thumbnail')
<div class="invalid-feedback">
{{ $message }}
</div>
@enderror
</div>
<button type="submit" class="btn btn-success"><span class="fa fa-save"></span> Save</button>
</form>
</div>
</div>
</div>
</div>
this my controller
public function create()
{
return view('pages.create', [
'title' => 'Add Pages',
'pagesCategory' => PagesCategory::all()
]);
}
public function store(Request $request)
{
// dd($request->all());
$request->validate([
'pages_category_id' => 'required',
'name' => 'required',
'slug' => 'required',
'content' => 'required',
'thumbnail' => 'required|image',
]);
$input['content'] = (strip_tags($request->content));
$input = $request->all();
if ($request->hasfile('thumbnail')) {
$image = $request->file('image');
$imageName = date('d-m-Y') . '.' . $image->getClientOriginalName();
$path = public_path('/uploads/pages');
$image->move($path, $imageName);
$input['thumbnail'] = $imageName;
}
Pages::create($input);
return redirect('/pages')->with('success', 'Success Add Pages!!');
}
@semicolon24 the validation rule can be used to ensure the given pages_category_id exists in the page_categories table (assuming (i) that is the table name and (ii) it is a foreign key?)"
'pages_category_id' => ['required', Rule::exists('page_categories')],
This will ensure the value is a valid ID, otherwise it will fail with a validation error
Furthermore, you can provide an empty value attribute for the default option so it does not get the option text
<option value="" selected="selected">Choose One</option>
Please sign in or create an account to participate in this conversation.