如何从字段表返回数据 api(fractal) 已设置默认值?

Posted

技术标签:

【中文标题】如何从字段表返回数据 api(fractal) 已设置默认值?【英文标题】:How to return data api(fractal) from field table has set default value? 【发布时间】:2020-01-30 14:39:28 【问题描述】:

我想从字段表中返回默认头像的数据,我将字段的值设置为default.png,当我返回数据时显示为空,我该怎么办?

public function register(Request $request, User $user)
    $this->validate($request, [
        'fullname'  => 'required',
        'company'   => 'required',
        'email'     => 'required|email|unique:users',
        'password'  => 'required|min:8',
        'referall'  => 'required'
    ]);

    $user = $user->create([
        'fullname'  => $request->fullname,
        'company'   => $request->company,
        'email'     => $request->email,
        'password'  => bcrypt($request->password),
        'api_token' => bcrypt($request->email),
        'id_role'   => 2,
        'referall'  => $request->referall
    ]);

    $response = fractal()
        ->item($user)
        ->transformWith(new UserTransformer)
        ->addMeta([
            'token' => $user->api_token,
            'avatar' => $user->avatar,
        ])
        ->toArray();

    return response()->json($response, 201);

Field table for avatarReturn API

【问题讨论】:

【参考方案1】:

正在向该行传递一个值(尽管NULL,这是一个有效值),因此它将显示为NULL。改成:

$response = fractal()
    ->item($user)
    ->transformWith(new UserTransformer)
    ->addMeta([
        'token' => $user->api_token,
        'avatar' => $user->avatar ?? 'default.png',
    ])
    ->toArray();

仅在省略该值时使用默认值,而不是在 NULL 作为值传递时使用。

阅读材料

Null coalescing operator

【讨论】:

以上是关于如何从字段表返回数据 api(fractal) 已设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章

yajra datatable fractal从包含的属性中删除数据密钥

如何使用代码点火器活动记录查询返回一维数组中的表字段

sql中如何提取从数据库中所获得时间的年份

易语言中如何从SQL查询中返回结果?

DB2 和 SQL-如何在特定字段中返回最大值,以便每行只显示一条记录;从多个表中提取数据

oracle中如何将数据从一个表复制到另一个表(仅复制其中某些字段)