2016-03-14 3 views
0

Как я могу позвонить всем моих атрибутов моделей, включая те, которые определены как accessors/mutators?Laravel вызывает все атрибуты сразу

В настоящее время я создаю аксессоры/мутаторы типа;

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

Вы можете использовать $response->attributesToArray(), чтобы получить массив всех атрибутов, включая ваши пользовательские аксессоры.

Вы можете использовать $response->toArray(), чтобы получить загруженные отношения, а также их атрибуты.

Если ваши пользовательские аксессоры определяют новые псевдо атрибуты (в отличие от перезаписи существующих столбцов базы данных), вы также должны добавить их в массив $appends.

protected $appends = ['satisfied_with_quality_of_course']; 
+0

Если у меня нет уже выбранной модели, например '$ response = Response :: all();' - как я могу получить список всех ключей атрибутов? – mikelovelyuk

+0

@ mike3875 Вы спросили, как назвать все атрибуты. Вы делаете это после загрузки определенной модели. Большинство ваших атрибутов будут поступать из столбцов базы данных, а это значит, что вам нужно сначала загружать записи базы данных! Почему в мире ваш контроллер будет работать с классом Model без записи? – jszobody

+0

В этом случае я собираюсь экспортировать все в CSV. На данный момент я использую '\ Schema :: getColumnListing ('response')', но это не будет включать всех моих помощников – mikelovelyuk

Смежные вопросы