我正在使用ajax进行删除调用,以销毁模型的路由。 一切正常,除了控制器不匹配数据库中的相应记录。Laravel Eloquent:路由模型绑定与多字表名不起作用
我叫api/serviceoperations/17
AJAX 删除呼叫,但如果我把一个var_dump
在我的控制器以这样的方式
public function destroy(ServiceOperation $serviceOperation) {
var_dump($serviceOperation);die;
}
我弄不存在
public 'exists' => boolean false
空模型。
当然我有一个模型调用ServiceOperation它是指表service_operations,与主键id
,并在我的数据库中有一个关键记录17
。
为什么控制器不解析我的ID到db中相对记录的路由?
更新(解决):
模型,控制器和迁移中使用命令创建
php artisan make:model -m -c -r App\Models\ServiceOperation
反正它似乎laravel没有更多的手非常好表的名称,然后一个世界:
尽管上面的命令对一个单词表名称(即App \ Model \ Service)有效,但它不能与2个或更多的单词一起使用,因为它不会自己绑定路由中传递的模型。
解决方法是在控制器中使用输入变量名,全部使用小写字母。
在我的情况下,自动生成的在控制器破坏作用是
public function destroy(ServiceOperation $serviceOperation) {
//model bind not working
}
但模型绑定不能正常工作。
更新参数为小写串,解决问题,模型绑定工作:
public function destroy(ServiceOperation $serviceoperation) {
//model bind working
}
你是如何删除模型对象? –
用'$ serviceOperation-> delete();',但这不是问题。破坏函数参数不能通过口才解决,因为它应该。 – GiuServ
我已经添加了一个片段,试试。 –