我已经使用资源来生成路线。
路线为:
Route::resource('/','TodoController');
我正在尝试删除存储在数据库中的待办事项。
该视图的代码为:
<form action="{{ route('destroy',['$todo->id']) }}" method="POST">
@csrf
{{ method_field('delete') }}
<button type="button" class="btn btn-primary">Yes</button>
<input type="hidden" name="_method" value="DELETE">
</form>
而且,控制器的代码是:
public function destroy(Todo $todo)
{
$todo->Todo::find($id);
$todo->delete();
return redirect()->route('index');
}
单击按钮后,我无法删除存储的任务。我在做什么错了?
答案 0 :(得分:0)
尝试一下
CUDA_ARRAY3D_DESCRIPTOR arrayDesc = { };
arrayDesc.Width = extent.width;
arrayDesc.Height = extent.height;
arrayDesc.Depth = 0;
arrayDesc.Format = CU_AD_FORMAT_UNSIGNED_INT8;
arrayDesc.NumChannels = 4;
arrayDesc.Flags = CUDA_ARRAY3D_COLOR_ATTACHMENT;
CUDA_EXTERNAL_MEMORY_MIPMAPPED_ARRAY_DESC mipmapArrayDesc = { };
mipmapArrayDesc.arrayDesc = arrayDesc;
mipmapArrayDesc.numLevels = 1;
mipmapArrayDesc.offset = 0;
CUDA_DRVAPI_CALL(cuExternalMemoryGetMappedMipmappedArray(&m_mipmapArray, m_extMem, &mipmapArrayDesc));
在您的控制器方法中,应该是这样,
<form action="{{ route('destroy', '$todo->id') }}" method="POST">
@csrf
@method('DELETE')
<button type="button" class="btn btn-primary">Yes</button>
<input type="hidden" name="_method" value="DELETE">
</form>
在这里,您必须将查询结果存储在变量中并对其执行一些操作。与public function destroy($id)
{
$todo = Todo::findOrFail($id);
$todo->delete();
return redirect()->route('index');
}
和save()
方法相同。
希望这会有所帮助:)
答案 1 :(得分:0)
将路线更改为:
Route::resource('todos','TodoController');
通过这种方式,laravel将声明您需要的TodoController的所有路由。
在按钮标签中,您需要在类型属性中添加“提交”。并且您需要在route方法中将id作为参数传递。将表单更改为:
<form action="{{ route('destroy', $todo->id) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-primary">Yes</button>
</form>
您的控制器:
public function destroy(Todo $todo, $id)
{
$todo = Todo::findOrFail($id);
$todo->delete();
return redirect()->route('index');
}
答案 2 :(得分:-1)
如下更改控制器功能:
public function destroy($id)
{
//
$todo->Todo::find($id);
$todo->delete();
return redirect()->route('index');
}
答案 3 :(得分:-1)
我认为您的路线未正确注册。我将待办事项资源注册为:
Route::resource('todos', 'TodoController');
然后在您的表单中通过其路由名称引用destroy动作:
<form action="{{ route('todos.destroy', ['todo' => $todo->id]) }}" method="POST">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-primary">Yes</button>
</form>
最后,在您的控制器中,您已经有了Todo模型的实例,因此您不必手动调用find方法。
public function destroy(Todo $todo)
{
$todo->delete();
return redirect()->route('index');
}