Это моя модель структуры:Laravel заказав модель belongsTo
class Family extends Model
{
public function members()
{
return $this->hasMany('App\Person');
}
}
class Person extends Model
{
public function family()
{
return $this->belongsTo('App\Family');
}
public function school()
{
return $this->belongsTo('App\School');
}
}
class School extends Model
{
public function students()
{
return $this->hasMany('App\Person');
}
}
Короче говоря, Person
принадлежит ко многим Schools
, но только один Family
.
пустышки данные:
families_table
id | name
---------
1 | Smith
2 | Doe
people_table
id | family_id | school_id | name
----------------------------------
1 | 1 | 1 | Betty
2 | 2 | 1 | John
school_table
id | name
-------------
1 | MIT
Таким образом, мы имеем пользователей: Smith, Betty
и Doe, John
. Теперь, если я это сделать:
$school = School::find(1);
foreach ($school->students AS $student) {
echo $student->family->name . ', ' . $student->name
}
я получаю:
Smith, Betty
Doe, John
То, что я хочу видеть это:
Doe, John
Smith, Betty
Как получить School
и перечислить members
отсортирован по полю name
в таблице Family
?
Если у кого есть идея для лучшего названия, я скрываю для предложений. – PawelMysior