Я пытаюсь добавить множественный выбор в свое приложение и сразу удалить данные, но они не будут удалены из базы данных.
Коды
controller
public function multipledel(Request $request){
$deli = $request->input('productsfordel');
$product = Product::whereIn('id', $deli);
$product->delete();
return redirect()->route('products.index')->with('success', 'Selected products are successfully deleted.');
}
route
Route::post('delmultipleproducts', 'ProductController@multipledel')->name('delmultipleproducts');
blade
//multiple delete form starts before table begin
{!! Form::open(['method' => 'Post', 'route' => ['delmultipleproducts'] ]) !!}
//delete button
<button name="bulk_delete" id="bulk_delete" data-toggle="tooltip" data-placement="top" title="Delete Selected" class="btn btn-xs btn-theme04" type="submit"><i class="fa fa-trash-o"></i></button>
<thead>
//table headears
</thead>
<tbody>
@foreach($products as $product)
<tr>
//my checkbox's
<td>
<input type="checkbox" name="productsfordel[]" class="checkboxes" value="{{ $product->id }}" />
</td>
// my multiple delete form closes here
{!! Form::close() !!}
//rest of the table...
Вопросы
- Я получаю несколько ошибок!
первый
В foreach указан неверный аргумент ()
секунда
SQLSTATE [23000]: нарушение ограничения целостности: 1451 Невозможно удалить или
обновить родительскую строку: ограничение внешнего ключа не выполняется
третий
Он возвращает мой сеанс успеха и говорит Selected products are successfully deleted.
, но это не так.
мнение
Я думаю, что ошибки, которые я получаю, относятся к данным, прикрепленным к моим продуктам, где у меня есть код, указанный ниже в моем обычном методе удаления one by one
public function destroy($id)
{
$product = Product::findOrFail($id);
$product->suboptions()->detach();
$product->subspecifications()->detach();
if(!empty($product->imageOne)){
Storage::delete($product->imageOne);
}
if(!empty($product->imageTwo)){
Storage::delete($product->imageTwo);
}
$product->delete();
return redirect()->route('products.index')->with('success','Product successfully deleted');
}
Как вы можете видеть, у меня есть несколько условий и синхронизированных данных для каждого из моих продуктов, но в моем методе множественного удаления их нет, однако я попытался также включить их, но это выдало ошибку на $product = Product::whereIn('id', $deli);
не уверен, может быть, мне нужно, чтобы массив $deli
как-то?
есть идеи?
UPDATE
Я понимаю, что ничто не отправит на мой контроллер, когда я попробовал dd($deli);
я получил ноль вместо id
выбранных продуктов.