Laravel Eloquent для связи не получает данные из связанной таблицы - PullRequest
0 голосов
/ 24 июня 2018

Iv получил простую таблицу «публикации» и таблицу «Языки», как показано ниже. Все, что я хочу сделать, это вывести «доступные языки», связанные с публикацией. я пробовал отношения так и так и не могу понять это правильно

Таблица публикаций

Таблица языков

Контроллер:

public function index()
{

    $publications = Publication::all();

    $languages = Language::all();

    return view('admin/publications/index', compact('publications', 'languages'));

}

Публикация Модель отношений:

public function languages(){

    return $this->hasMany('App\Language');

}

Страница публикаций

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Для доступа к отношениям вы используете with как

//In your publications model add
function languages(){
    return $this->hasMany('App\Languages','languages')//where languages is the foreing key.
}

Тогда в вашем контроллере вы просто делаете

$publications = Publication::with('languages')->get();

таким образом $publications будет иметь все связанные языки вlanguages собственность

0 голосов
/ 24 июня 2018

Используйте with для включения отношений:

public function index()
{
    $publications = Publication::with('languages')->get();

    return view('admin/publications/index', compact('publications'));
}

Это позволит вам затем получить доступ к связанным моделям, таким как:

foreach ($publication->languages as $language) {
    echo $language->myAttribute;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...