使用API​​和Laravel 5将对象转换为选择标签/值

时间:2016-05-13 20:53:31

标签: api laravel

我有一个返回所有联盟的API

public function getFederations()
{
    return Federation::all();
}

所以,现在,我需要所有联合会,但我需要将其插入Select中。 我只需要id,name字段。

所以,我应该做的是:

$federations->map(function ($federation) {
   return [
       'text'              => $federation->name,
       'value'             => $federation->id,
   ];

但我不想为每种响应格式创建单个函数/端点。

有办法吗?

2 个答案:

答案 0 :(得分:0)

您可以只添加查询所需的值以及所需的名称,如下所示:

public function getFederations()
{
    return Federation::all(['id as value', 'name as text']);
}

答案 1 :(得分:0)

我在API应用程序中所做的是在模型中使用$visible$appends数组。例如,假设这是您的Federation模型:

class Federation extends Eloquent
{
    protected $visible = [
        'text',
        'value',
    ];
    protected $appends= [
        'text',
        'value',
    ]

    public function getTextAttribute()
    {
        return $this->name;
    }

    public function getValueAttribute()
    {
        return $this->id;
    }
}