2016-03-24 4 views
0

Согласованные отношения, которые я определил, возвращают объект belongsTo, но не дают мне доступ к любому из атрибутов, которые должны быть внутри него.Eloquent Relationship возвращает, но не дает мне атрибуты

Отношения в Step.php

public function profession() 
{ 
    return $this->belongsTo(__NAMESPACE__.'\\Profession', 'id', 'profession_id'); 
} 

Отношения в Profession.php

public function steps() { 
    return $this->hasMany(__NAMESPACE__ . '\\Step', 'id', 'profession_id'); 
} 

код, я использую, чтобы вернуть отношения belongsTo.

{{ dd(step.profession) }} 

Ответ, который я получаю, относится к типу belongsTo, но он просто не содержит информации о профессии.

+1

Я не знаю, прут, но это может иметь отношение http://stackoverflow.com/questions/ 29514081/can not-access-eloquent-attributes-on-twig –

+0

Вы пропустили ту часть, где вы показываете нам, как вы на самом деле запрашиваете отношение, поэтому его можно использовать в представлении. – lesssugar

+0

Пожалуйста, не то, что принадлежит только для ввода ключа, foreign_key. Здесь вы можете удалить профессию. Дальнейший класс можно заменить на Profession :: class (PHP 5.5> =) – wiesson

ответ

1

Вы можете попробовать жадную загрузку профессии, как:

Step::with('profession')->orderBy('name', 'asc')->get(); 
+0

Это сработало! Большое спасибо человеку. – LukeBetter

0

Измените ваши отношения к

Отношений в Step.php

public function profession() 
{ 
    return $this->belongsTo(__NAMESPACE__.'\\Profession', 'profession_id'); 
} 

Отношение в Profession.php

public function steps() { 
    return $this->hasMany(__NAMESPACE__ . '\\Step', 'profession_id'); 
} 

Второй аргумент belongsTo и hasMany должен быть внешний ключ не первичный ключ

+0

Я сделал это, но я все еще испытываю ту же проблему. Я пробовал несколько комбинаций, и это печально не работает. – LukeBetter

Смежные вопросы