gpt4 book ai didi

php - 路由模型绑定(bind)不起作用

转载 作者:可可西里 更新时间:2023-11-01 07:12:23 25 4
gpt4 key购买 nike

我正在尝试为简单的 CRUD 使用路由模型绑定(bind),但更新和删除功能不起作用。我正在使用 laravel 5.5

Route::resource('admin/file','AdminController');

我的编辑和删除按钮 View

<a href="{{ route('file.edit', ['id'=>$file->id]) }}">

<form action="{{ route('file.destroy', ['id'=>$file->id]) }}" method="post">
{{method_field('DELETE')}}
{{csrf_field()}}
<button type="submit" class="delete">delete</button>
</form>

我的资源 Controller :

namespace App\Http\Controllers;

use App\Files;
use Illuminate\Http\Request;

商店工作正常

  public function store(Request $request)
{
$this->validate($request,[
'title'=>'required',
'body'=>'required',
'price'=>'required',
'linkFile'=>'required',
]);

Files::create($request->all());
return redirect(route('file.index'));
}

但是编辑和删除不起作用

public function edit(Files $files)
{
return view('admin.edit',compact('files'))->with('title','Edit File');
}

public function destroy(Files $files)
{
$files->delete();
return redirect(route('file.index'));
}

我的模型:

protected $table='files';

protected $fillable=[
'title','body','price','linkFile'
];

当我删除按钮时没有任何反应并且编辑相同

如果我在第一列添加 dd($files) 用于编辑和删除功能,则响应将是 [] 并且 handle 没有错误

这是我的路线列表

enter image description here

有人可以帮忙吗?

最佳答案

终于,2 天后我找到了答案,我想在这里为可能有同样问题的每个人提供我的答案。

要使路由绑定(bind)起作用,您的类型提示变量名称必须与路由占位符名称匹配

比如我的编辑方法

这是我要编辑的路由 URI

admin/file/{file}/edit

可以看到路由定义中有{file}占位符,所以对应的变量必须叫$file

public function edit(Files $file)
{
return view('admin.edit',compact('file'));
}

关于php - 路由模型绑定(bind)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46307094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com