如何在资源中创建列别名

How to create column aliases in a resource

我正在使用 Laravel 创建一个 API。

我创建了一个名为 transaction 的 table。我还创建了一个名为 transactionresource.

的资源

我想将 id 列更改为 API 中的 key 列,并且我不想在 API 中显示 id;相反,应该显示密钥。

我的代码

class TransactionResource extends JsonResource
{
  
    public function toArray($request)
    {
        $array = parent::toArray($request);

        // set the new key with data
        $array['key'] = $array['id'];

        // unset the old key
        unset($array['id']);
        
        return $array;
    }
}

我遇到这个错误

{"success":false,"message":"Undefined array key \"id\""}

您可以 return 像这样的自定义字段数组

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

see documentation