3 回答
TA贡献1828条经验 获得超4个赞
我认为您可以通过添加选项参数来解决您的问题。
Route::resource('peopleDatas', 'API\PeopleDataController',[
'parameters' => ['peopleDatas' => 'peopleData'],
]);
laravel 强制你使用某些约定。当您为非数据透视表使用带下划线的表名时,您将开始遇到问题。选项参数允许您解决此问题。
TA贡献2041条经验 获得超4个赞
我发现了这个问题。实际上,我发现它Laravel Route Model Binding
是基于名称工作的,并且我Hungarian naming convention
在函数签名中使用了:
public function update(Request $oRequest, PeopleData $oPeopleData)
而根据用户在这里提到的参数必须与模型同名。因此,通过将函数签名更改为其原始状态,如下所示:
public function update(Request $request, PeopleData $peopleData)
然后Laravel Route Model Binding
再次工作!对我来说,当我们在前面提到变量的类型时,变量的名称会影响功能,这让我感到惊讶。
TA贡献1789条经验 获得超8个赞
在 Laravel 中有一个叫做Route Model Binding的东西。因此,当您访问如下路线时:
/api/peopleDatas/1234
雄辩的接受模型而不是身份。您可以通过以下方式进行检查:
public function update(Request $request, PeopleData $peopleData)
{
return $peopleData->id; // or any other column
}
- 3 回答
- 0 关注
- 118 浏览
添加回答
举报