By default If the value attribute was omitted, the default value for the checkbox is on. You can either set the value attribute to the html element to 1 for example or handle this on your controller
Dec 31, 2020
8
Level 9
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'on' for column 'isChecked' at row 1 (SQL: insert into `rfqs` (`product_name`, `product_category_id`, `sub_category_id`, `product_quantity`, `unit_id`, `city`, `isChecked`, `details`, `user_id`
SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'on' for column 'isChecked' at row 1 (SQL: insert into `rfqs` (`product_name`, `product_category_id`, `sub_category_id`, `product_quantity`, `unit_id`, `city`, `isChecked`, `details`, `user_id`, `updated_at`, `created_at`) values (Watch, 1, 1, 1, 1, Delhi, on, ?, 37, 2020-12-31 11:10:16, 2020-12-31 11:10:16))
Basically this return error for checkbox. In my table isCheckedcolumn is boolean. And I try dd() it return on for isChecked value. Can anyone tells me how return true/false for isChecked?
Controller Method
public function store(Request $request)
{
$validatedData = $request->validate([
'product_name' => 'required',
'product_category_id' => 'required',
'sub_category_id' => 'required',
'product_quantity' => 'required',
'unit_id' => 'required|not_in:0',
'city' => 'required|',
'isChecked' => 'required|accepted',
])+[
'details' => $request->details,
'user_id' => auth()->user()->id,
];
Rfq::create($validatedData);
return redirect()->withMessage('RFQ submitted successfully.');
}
Level 75
You should exclude that checkbox from your data and use has for checkbox
Rfq::create($request->except('isChecked') + [
'isChecked' => $request->has('isChecked')
]);
This will work in your code
public function store(Request $request)
{
$validatedData = $request->validate([
'product_name' => 'required',
'product_category_id' => 'required',
'sub_category_id' => 'required',
'product_quantity' => 'required',
'unit_id' => 'required|not_in:0',
'city' => 'required|',
'isChecked' => 'required|accepted',
]) + [
'details' => $request->details,
'user_id' => auth()->user()->id,
'isChecked' => $request->has('isChecked')
];
Rfq::create($validatedData);
return redirect()->withMessage('RFQ submitted successfully.');
}
By the way always use a form request instead of have a validation in the controller.
1 like
Please or to participate in this conversation.