我正在尝试使用Route Model Binding进行简单CRUD但更新和删除功能不起作用.我正在使用laravel 5.5
Route::resource('admin/file','AdminController');
我的编辑和删除按钮视图
<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>
我的资源控制器:
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)以进行编辑和删除功能,那么响应将是[]并且句柄没有错误
在这里我的路线列表
有人可以帮忙吗?
解决方法:
终于在2天之后我找到了答案,我想把答案放在这里给每个可能有我问题的人
要使路由绑定工作,您应该使用类型提示的变量名称与路径段名称匹配,如所需的文档:
例如我的编辑功能:
这是我的Edit URI
admin/file/{file}/edit
你可以看到有{file}参数或你调用的任何东西
现在只需要在函数参数中写出完全$文件
public function edit(Files $file)
{
return view('admin.edit',compact('file'));
}
对不起如果我的英语很差
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。