是)我有的
刀片.php 文件
<form action="cars/{{ $car->id }}" method="POST" class="pt-3">
@csrf
@method('delete')
<button
type="submit"
class="border-b-2 pb-2 border-dotted italc text-red-500"
>
Delete →
</button>
</form>
Laravel 中的控制器
public function destroy($id)
{
$car = Car::find($id)->first();
$car->delete();
return redirect('/cars');
}
问题
上面的控制器,总是删除 db 中后面一个 id 的记录。 例如,如果请求中发送的 id 为 14,则控制器删除 id 为 13 的记录。
我想提到的与这个问题相关的另外两个重要细节是,
-> 我已经仔细检查了请求发送到的 url,并且 url 包含正确的 id。所以它必须是失败的控制器。
-> 即使上面的控制器代码不起作用,下面的代码也可以正常工作。
public function destroy(Car $car)
{
$car->delete();
return redirect('/cars');
}
我无法弄清楚为什么我在“Laravel 中的控制器”下键入的代码不起作用,而我直接在上面键入的代码起作用。