Laravel立即调用所有属性

时间:2016-03-14 12:29:56

标签: php laravel laravel-5.1

如何调用所有模型属性,包括定义为访问者/变更器的属性?

目前我正在创建像;;

这样的访问者/变种者
public function setSatisfiedWithQualityOfCourseAttribute($value)
{
    $this->attributes['group_answers']['satisfied_with_quality_of_course'] = $value;
}

public function getSatisfiedWithQualityOfCourseAttribute()
{
    if (isset($this->group_answers['satisfied_with_quality_of_course'])) {
        return $this->group_answers['satisfied_with_quality_of_course'];
    }

    return null;
}

我可以通过类似$response->satisfied_with_quality_of_course之类的东西从我的控制器中调用它们,但我需要能够在不明确地一次调用它们的情况下返回所有这些内容。我能这样做吗?

我需要调用所有“真实”属性和所有“访问者”。

1 个答案:

答案 0 :(得分:1)

您可以使用$response->attributesToArray()获取所有属性的数组,包括自定义访问者。

您也可以使用$response->toArray()来获取已加载的关系及其属性。

如果您的自定义访问者定义了新的伪属性(而不是覆盖现有的数据库列),您还应该将它们添加到$appends数组中。

protected $appends = ['satisfied_with_quality_of_course'];