2017-02-16 19 views
0

у меня есть «номер», который имеет отношение с «рынками» и «киосками»Laravel Отношение возвращающего никаких результатов

Я в Выбирается работающими на создание форме, но индекс лезвие правильно не отображается.

Он должен взять на себя «идентификатор» и преобразовать его в поле «имя», как показано ниже

<td>{{$user->role ? $user->role->name : 'User has no role'}}</td> 

И это правильно отображается с помощью следующего кода модели: публичной функции роли() {

return $this->belongsTo('App\Role'); 
} 

и это мой "Заказ" Модель:

public function marketdate(){ 

    return $this->belongsTo('App\Markets'); 
} 

public function stallstype() { 

    return $this->belongsTo('App\Stalls'); 
} 

с фо llowing на index.blade:

... 
<td>{{$booking->marketdate ? $booking->marketdate->date : '-' }}</td> 
<td>{{$booking->stallstype ? $booking->stallstype->name : '-'}}</td> 
... 

Но это просто показывает «-», когда он отображает страницу

на идентификаторы, которые хранятся в базе данных, являются правильными и коррелируют это просто не правильно отображать ,

Еще одна вещь, схемы таблиц следующим образом:

Лавки стол:

Schema::create('stalls', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('name'); 
     $table->integer('cost'); 
     $table->timestamps(); 
    }); 

рынки таблица:

Schema::create('markets', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->string('date'); 
     $table->integer('is_active'); 
     $table->timestamps(); 
    }); 

Ошибка:

at PhpEngine- >evaluatePath('C:\xampp\htdocs\moowoos\storage\framework\views/3bcb71b43fffee7f9 a9edf18bfb397ab94380507.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'bookings' => object(Collection), 'markets' => array('Saturday 4th March', 'Saturday 5th April', 'Saturday 6th May', 'Saturday 7th June', 'Saturday 8th July', 'Saturday 8th July'), 'stalltype' => array('Preloved', 'Craft', 'Business'))) in compiled.php line 15361 
at CompilerEngine->get('C:\xampp\htdocs\moowoos\resources\views/admin/bookings/index.blade.php', array('__env' => object(Factory), 'app' => object(Application), 'errors' => object(ViewErrorBag), 'bookings' => object(Collection), 'markets' => array('Saturday 4th March', 'Saturday 5th April', 'Saturday 6th May', 'Saturday 7th June', 'Saturday 8th July', 'Saturday 8th July'), 'stalltype' => array('Preloved', 'Craft', 'Business'))) in compiled.php line 15193 

Что показывает, что это возвращает массив

+0

Вы уверены, что есть данные там? – ggdx

+0

Да, ну, я могу видеть идентификаторы в таблице «заказы» в БД, и эти идентификаторы соответствуют тому, что находится в БД для соответствующих таблиц, так как мое выпадающее меню на странице создания использует ту же связь для заполнения – Luke

+0

I ' d сказать, что вы не получаете никаких данных для бронирования, и в результате это всегда неверно. Как вы получаете свой объект бронирования? – boroboris

ответ

0

Похоже, что Eloquent не может загружать связанные модели. Поскольку вы используете lists(), для загрузки других моделей. Предполагается, что вы делаете то же самое для модели Business.

Когда вы вызываете списков ('name', 'id'), вы сообщаете Eloquent загружать только те 2 поля из базы данных. Таким образом, если вы используете это для загрузки бизнес-моделей, вы не получаете marketdate_id или stallstype_id, поэтому Eloquent не может загружать связанные модели.

Убедитесь, что столбцы внешнего ключа передаются спискам() метода, если вы хотите загрузить связанные модели:

Business::lists('name', 'id', 'stalltype_id', 'marketdate_id')->all();