【问题标题】:Laravel get data from api by valueLaravel 按值从 api 获取数据
【发布时间】:2020-02-16 06:15:51
【问题描述】:

我正在使用 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"

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    路线

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

    控制器

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

    转到Member.php model 并添加此方法getRouteKeyName

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

    默认情况下,Laravel 会自动注入 ID 与请求 URI 中相应值匹配的模型实例。

    如果您希望模型绑定在检索给定模型类时使用 id 以外的数据库列,您可以覆盖 Eloquent 模型上的 getRouteKeyName 方法:

    更多信息请查看documentation

    【讨论】:

      猜你喜欢
      • 2020-05-30
      • 1970-01-01
      • 2020-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2017-12-06
      • 1970-01-01
      相关资源
      最近更新 更多