КАК

  1. В Student Controller, как отсортировать результаты по имени студента?

  2. Как отсортировать результаты по имени опекуна учащегося?



СТРУКТУРА ТАБЛИЦЫ

  • таксономии

    • идентификатор
    • entity_type - Он содержит имя класса модели-владельца.
    • entity_id - Он содержит значение идентификатора студента.
  • < Сильный > < EM> студентов

      < Li> ID < Li> имя
  • стражи

    • идентификатор
    • student_id
    • имя



< Сильный > CONTROLLER

  • StudentController.php

    public function getStudents()
    {
        return Taxonomy::with([
                'entity', 
                'entity.guardian'
            ])
            ->where('entity_type', 'Student')
            ->get();
    }
    



< Сильный > MODEL

  • Taxonomy.php

    public function entity()
    {
        return $this->morphTo();
    }
    
  • Student.php

    public function taxonomies()
    {
        return $this->morphMany('App\Taxonomy', 'entity');
    }
    
    public function guardian()
    {
        return $this->hasOne('App\Guardian');
    }
    
  • Guardian.php

    public function student()
    {
        return $this->belongsTo('App\Student');
    }
    
0
Yves 22 Сен 2018 в 17:15

1 ответ

Лучший ответ

Используйте sortBy():

$taxonomies = Taxonomy::with('entity.guardian')
    ->where('entity_type', 'Student')
    ->get();

// Solution #1: Sort results by student name.
$sortedTaxonomies = $taxonomies->sortBy('entity.name');
return $sortedTaxonomies->values();

// Solution #2: Sort results by student's guardian name.
$sortedTaxonomies = $taxonomies->sortBy('entity.guardian.name');
return $sortedTaxonomies->values();
1
Jonas Staudenmeir 22 Сен 2018 в 14:58