Laravel 产品上的删除方法不起作用
Laravel delete method on products not working
我有一个视图,其中显示了我数据库中的所有产品,在该视图中我可以查看编辑和删除每个产品。
删除功能目前无法正常使用:
视图如下所示:
@foreach($products as $productKey => $productValue)
<tr>
<td>{{ $productValue->id }}</td>
<td>{{ $productValue->title }}</td>
<td>
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form" data-action="submit"></a>
</form>
...
@endif
</td>
</tr>
@endforeach
我的销毁方法如下所示:
public function destroyProduct(Request $request)
{
$productID = $request->get('id');
$product = Product::find($productID);
$deleteFolder = "folderpath...";
if(is_dir($deleteFolder))
{
if(Helper::removeDirRecursive($deleteFolder))
{
if($product)
{
$product->delete();
return redirect()->route('indexProduct')->with('message', 'Success');
}
else
{
return redirect()->route('indexProduct')->with('message', 'Error');
}
}
}
elseif($product)
{
$product->delete();
return redirect()->route('indexProduct')->with('message', 'Success');
}
return redirect()->route('indexProduct')->with('message', 'Error');
}
目前它只是删除最新的产品,如果我回显
$product
我总是得到最新的产品。
如何更改我的功能才能删除我选择正确的产品。
编辑:
我试过了,但还是不行:
<form action="{{ route('destroyProduct', $productValue->id) }}" method="post" name="delete_product_form">
编辑:
我的javascript提交功能:
observerSubmitButton: function() {
$('.observeSubmit').on('click', function() {
action = $(this).data('action');
formName = $(this).data('form');
if(action == 'submit')
{
$('form[name="'+formName+'"]').submit();
}
});
},
使用
$product=Product::find($id)
或
$product=Product::where('id',$id)
查找产品
然后
$product->delete();
删除它
改变这个:
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form" data-action="submit"></a>
</form>
...
@endif
至此
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<button type="submit">Delete</button>
</form>
...
@endif
或者你可以有一个计数器
<?php $count=0; ?>
@foreach($products as $productKey => $productValue)
<tr>
<td>{{ $productValue->id }}</td>
<td>{{ $productValue->title }}</td>
<td>
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form{{$count}}">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form{{$count++}}" data-action="submit"></a>
</form>
...
@endif
</td>
</tr>
@endforeach
我有一个视图,其中显示了我数据库中的所有产品,在该视图中我可以查看编辑和删除每个产品。
删除功能目前无法正常使用:
视图如下所示:
@foreach($products as $productKey => $productValue)
<tr>
<td>{{ $productValue->id }}</td>
<td>{{ $productValue->title }}</td>
<td>
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form" data-action="submit"></a>
</form>
...
@endif
</td>
</tr>
@endforeach
我的销毁方法如下所示:
public function destroyProduct(Request $request)
{
$productID = $request->get('id');
$product = Product::find($productID);
$deleteFolder = "folderpath...";
if(is_dir($deleteFolder))
{
if(Helper::removeDirRecursive($deleteFolder))
{
if($product)
{
$product->delete();
return redirect()->route('indexProduct')->with('message', 'Success');
}
else
{
return redirect()->route('indexProduct')->with('message', 'Error');
}
}
}
elseif($product)
{
$product->delete();
return redirect()->route('indexProduct')->with('message', 'Success');
}
return redirect()->route('indexProduct')->with('message', 'Error');
}
目前它只是删除最新的产品,如果我回显
$product
我总是得到最新的产品。
如何更改我的功能才能删除我选择正确的产品。
编辑:
我试过了,但还是不行:
<form action="{{ route('destroyProduct', $productValue->id) }}" method="post" name="delete_product_form">
编辑:
我的javascript提交功能:
observerSubmitButton: function() {
$('.observeSubmit').on('click', function() {
action = $(this).data('action');
formName = $(this).data('form');
if(action == 'submit')
{
$('form[name="'+formName+'"]').submit();
}
});
},
使用
$product=Product::find($id)
或
$product=Product::where('id',$id)
查找产品
然后
$product->delete();
删除它
改变这个:
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form" data-action="submit"></a>
</form>
...
@endif
至此
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<button type="submit">Delete</button>
</form>
...
@endif
或者你可以有一个计数器
<?php $count=0; ?>
@foreach($products as $productKey => $productValue)
<tr>
<td>{{ $productValue->id }}</td>
<td>{{ $productValue->title }}</td>
<td>
@if($productValue->dr)
<a href="{{ route('editProduct', $productValue->id) }}" title="edit product"></a>
<form action="{{ route('destroyProduct') }}" method="post" name="delete_product_form{{$count}}">
<input type="hidden" name="_method" value="delete">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="hidden" name="id" value="{{ $productValue->id }}">
<a href="#" title="delete" data-form="delete_product_form{{$count++}}" data-action="submit"></a>
</form>
...
@endif
</td>
</tr>
@endforeach