获取属性访问器仅适用于laravel中的特定方法

时间:2017-11-16 07:58:40

标签: php laravel laravel-5 eloquent accessor

我想修改API调用的查询结果的某些值。这是我的查询

public function modules()
{
    Module::select('id','name','image')->get()->toJson();
}

所以我想修改image值,添加完整路径。我添加了访问者

public function getImageAttribute($image)
{
    return asset($image);
}

并且它工作正常,但现在问题是每次我尝试检索它时都会影响此列。有没有办法只为getImageAttribute方法使用此访问器(modules)?

1 个答案:

答案 0 :(得分:3)

您可以摆脱访问者并更新modules方法中的图像路径。

public function modules()
{
    return Module::select('id', 'name', 'image')->get()->map(function ($module) {
        $module->image = asset($module->image);
        return $module;
    })->toJson();
}