【问题标题】:Laravel Resources Returning nullLaravel 资源返回 null
【发布时间】:2020-08-03 06:15:18
【问题描述】:

返回 laravel 资源是 null 但数据库有文件。这是我的资源类

class UsersResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */
    public function toArray($request)
    {
        return [
    'u_id' => $this->user_id,
    'u_name' => $this->user_name,
    ];
    }
}

我的路线文件在这里

Route::get('test2', function(){
    $xyx=Users::find(1);
    return new UsersResource($xyx);
});

我的回复如下

{"data":{"u_id":null,"u_name":null}}

谢谢

【问题讨论】:

  • 请分享用户表结构。它是否包含user_id 或user_name 列?
  • 默认是id和name
  • @Alexandar Bishop 谢谢我从你的评论中得到了提示。它有效

标签: laravel laravel-resource


【解决方案1】:

这是因为默认情况下,Users 表不包含 user_id 或 user_name 列。默认为id 和name。所以你应该像下面这样更改代码。

class UsersResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return array
     */

    public function toArray($request)
    {
        return [
           'u_id' => $this->id,
           'u_name' => $this->name,
        ];
    }
}

【讨论】:

    【解决方案2】:

    Laravel 资源只是格式化你的 Eloquent 模型。 首先查看查询结果(在您的情况下为$xyx)。

    dd($xyx);
    

    正如@Alexandr-Biship 所述,您可能会尝试访问错误的字段。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-10
      • 2023-01-27
      • 1970-01-01
      • 2020-08-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-15
      • 2018-06-09
      相关资源
      最近更新 更多