I've получила 3 МоделиLaravel 4> жадная загрузка> OrderBy вложенные отношения
1 - галерея
class Gallery extends \Eloquent {
public function media()
{
return $this->hasMany('Media');
}
}
2- Медиа
class Media extends \Eloquent {
protected $table = 'media';
public function labels()
{
return $this->belongsTo('Label');
}
}
3 - Этикетка
class Label extends \Eloquent {
public function media()
{
return $this->hasMany('Media');
}
}
Я пытаюсь загрузить определенную Галерею со всем этим Медиа. Средства массовой информации должны быть сгруппированы с помощью соответствующих ярлыков и упорядочены по столбцу «Названия ярлыков».
Это не правда рабочая:
$gallery = Gallery::with([ 'media.labels' => function($q)
{
$q->orderBy('name', 'desc');
} ])->where('name', 'Gallery1')->first();
Чтобы дать пример, как результат должен быть отсортирован:
Gallery1
ALabel
Media1
Media2
BLabel
Media3
CLabel
Media4
Media5
Media6
Я не думаю, что это правильно, что ваш '' Media' belongsTo ('Метка') '. Это означает, что каждый «Медиа» имеет только одну «Метка». Скорее вы должны использовать 'attribToMany ('Label')', так как каждый 'Media' может иметь несколько' Label'. – Andy
Спасибо, что указали это. Мой вывод Пример был немного запутанным, но это именно то, что я хочу: каждый носитель принадлежит одному ярлыку сразу - не много. Я оптимизировал вывод Пример – Kristo