Intereting Posts
Удалить пустые теги в Imperavi Redactor ftp_ssl_connect с неявным ftp над tls Предупреждение: mysql_num_rows () ожидает, что параметр 1 будет ресурсом, boolean указан в /home/folder/public_html/folder/folder/login.php в строке 18 Как объявить глобальную переменную в этом API? parse csv (данные заключены в кавычки), используя fgetcsv () не работает должным образом Назначение значений по умолчанию для Smarty с использованием объектно-ориентированного стиля Создание динамического массива меню с использованием php Резервное копирование базы данных MySql с помощью PHP Назад Кэширование навигация – IE Как удалить строку под заголовком и выше $ html в TCPDF? Измените размер изображения в соответствии с размером текста Ошибки проверки в режиме AJAX preg_match и (не английские) латинские символы? Как ? Формирование сообщения в нескольких местах как отображать описание продукта woo commerce продуктов в обычной почте wordpress

Laravel Красноречивое гнездование

Я пытаюсь вернуть вложенный ответ JSON, нужно подключить несколько таблиц, но пока я просто пытаюсь с 3, уровни могут идти глубже. Мои модели следующие:

Обновление # 1:

class Sport extends Eloquent { protected $table = 'sportovi'; protected $fillable = ['id', 'sport_eng']; public $timestamps = false; public function liga(){ return $this->hasMany('League', 'sport_id'); } } class League extends Eloquent { protected $table = 'lige'; protected $fillable = ['league_id', 'liga', 'sport_id']; public $timestamps = true; public function mec(){ return $this->hasMany('Match', 'match_id'); } } class Match extends Eloquent { protected $table = 'mecevi'; protected $fillable = ['match_id', 'home', 'away', 'kotime', 'day', 'kolo', 'sport_id', 'league_id', 'date', 'long_id']; public $timestamps = false; public function liga(){ return $this->belongsTo('Match', 'league_id'); } } 

Если я сделаю:

 $sportovi = Sport::with('liga')->get(); return $sportovi; 

все нормально, дети «lige» вложены, где они должны быть, как показано на ссылке здесь , но, если я попытаюсь добавить Match, вот так:

 $mecevi = Sport::with('liga.mec')->get(); 

Я получаю узел «mec», который представляет собой пустой массив, как показано здесь , вместо того, чтобы идти на один уровень глубже, как в предыдущем примере.

Я также попытался сделать несколько условий (), которые вызывают ошибку. Вызов неопределенного метода Illuminate \ Database \ Query \ Builder :: mec ()

Обновление: все тот же, mec:[] , пустой массив.

Я использую Laravel 4.2.

По моему мнению, вы хотите получить все matches leagues

Проблема может быть во втором параметре в функции hasMany

 public function mec(){ return $this->hasMany('Match', 'league_id'); } 

Второй параметр должен быть foreign_key

 public function mec(){ return $this->hasMany('Match', 'match_id', 'league_id'); } 

источник: http://laravel.com/docs/4.2/eloquent#one-to-many

Выяснилось, мои отношения в таблице были отключены, после предоставления всех условий, таких как return $this->hasMany('Comment', 'foreign_key', 'local_key'); все начало работать так, как должно. Спасибо всем.