我正在使用Laravel / Passport,并且已经可以通过id
获取数据:
api.php / Controller.php
Route::get('members/{member}', 'MemberController@show');
public function show(Member $member)
{
return $member;
}
这只返回id
的所有数据,现在我想通过电话号码获取会员,所以我创建了:
Route::get('members/{phone}', 'MemberController@phone');
public function phone(Member $member)
{
return $member;
}
错误:
例外:“ Symfony \ Component \ HttpKernel \ Exception \ NotFoundHttpException”文件:“ C:\ Users \ xx \ xx \ xx \ xx \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php”行:204消息:“没有针对模型[App \ Member]的查询结果2929292222“
转到Member.php
model
并添加此方法
public function getRouteKeyName()
{
return 'phone';
}
默认情况下,Laravel将自动注入其ID与请求URI中的对应值匹配的模型实例。
如果检索给定模型类时,如果希望模型绑定使用id
以外的数据库列,您可以在Eloquent模型上覆盖getRouteKeyName
方法:
有关更多信息,请检查documentation