Laravel получает данные из API по значению - PullRequest
2 голосов
/ 19 октября 2019

Я использую 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 \Файл исключения \ NotFoundHttpException ":" C: \ Users \ xx \ xx \ xx \ xx \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php "строка: 204 сообщение:" Нет запроса для модели [App \ Member] 2929292222 "

1 Ответ

2 голосов
/ 19 октября 2019

route

Route::get('members/{phone}', 'MemberController@phone');

контроллер

public function phone(Member $member)
{
    return $member;
}

Перейти к Member.php model и добавить этот метод getRouteKeyName

public function getRouteKeyName()
{
  return 'phone';
}

Laravel по умолчаниюон автоматически внедрит экземпляр модели с идентификатором, соответствующим соответствующему значению из URI запроса.

Если вы хотите, чтобы привязка модели использовала столбец базы данных, отличный от id, при извлечении данного класса модели, вы можете переопределить метод getRouteKeyName в модели Eloquent:

для получения дополнительной информации см. Документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...