Я использую контроллер ресурсов для удаления записи в строке, передав коллекцию в представление.
Представление :
<tbody>
@php $count=1; @endphp
@forelse ($products as $product)
<tr>
<td>{{ $count }}</td>
<td>{{ $product->name }}</td>
<td>{{ $product->slug }}</td>
<td>{{ $product->updated_at }}</td>
<td><span class="label label-success">Published</span></td>
<td>
<div class="btn-group">
<a href="/products/{{ $product->slug }}" class="btn btn-default btn-xs">View</a>
<a href="/account/edit-product-{{ $product->slug }}" class="btn btn-warning btn-xs">Edit</a>
<a href="{{ route('products.destroy', $product->slug) }}" class="btn btn-danger btn-xs" onclick="event.preventDefault();document.getElementById('delete-product').submit();">Delete</a>
<form id="delete-product" method="POST" action="{{ route('products.destroy', $product->slug) }}" style="display: none;">
@csrf
@method('DELETE')
</form>
</div>
</td>
</tr>
@php $count++; @endphp
@empty
<tr>
<td colspan="6">No products yet.</td>
</tr>
@endforelse
</tbody>
Контроллер :
public function products()
{
$products = Product::orderBy('created_at', 'desc')->paginate(10);
return view('vendor.products')->with('products', $products);
}
public function destroy(Product $product)
{
$product->delete();
return redirect('/account/products')->with('success', 'Product deleted successfully.');
}
Когда я нажимаю любую кнопку «Удалить», она удаляет последнее сообщение (первое сообщение в базе данных, поскольку оно отсортировано по убыванию).
Можеткто-то говорит мне, где это неправильно?Сначала я думаю, что код работает нормально, пока я не сделаю какую-то другую модификацию, и он «волшебным образом» не будет работать должным образом.
Отредактировано: route:
Route::prefix('/account')->group(function () {
Route::get('/products', 'AccountController@products');
Route::get('/corporate-info', 'AccountController@corporateInfo');
Route::get('/add-product', 'ProductController@create');
Route::get('/edit-product-{product}', 'ProductController@edit');
});
Route::resource('products', 'ProductController');
Модель продукта:
public function getRouteKeyName()
{
return 'slug';
}