2017-02-03 9 views
0

Я использую Datatables для отображения данных. Он работает хорошо, но когда я хочу отображать данные из связанных таблиц (моделей), они не отображаются.

Модель Keyword.phpLarvel Datatables отображает данные из связанных таблиц

public function website() { 
    return $this->belongsToMany('App\Website'); 
} 

Модель Website.php

public function keywords() { 
    return $this->hasMany('App\Keyword'); 
} 

таблица базы данных 'веб-сайтов': идентификатор, SiteName, SiteURL
таблицы базы данных 'ключевые слова': id, website_id, kwName

Url, который должен отображать данные: проекты /'.$ website-> идентификатор '/ редактировать. (Пример: проекты/2/редактировать - (правка лезвие)) Таким образом, по этому адресу я хочу показать данные, которые отображают все kwName для определенного веб-сайта (в этом примере/2 /).

Пожалуйста, помогите мне, что я должен использовать и как это сделать.

ответ

1

Ваши плохие отношения - это неправильный путь.

keywords имеет ссылку на website через website_id, это отношенияbelongsTo.

website ссылается на многие keywords, так что это hasMany отношения.

Laravel 5.4 Eloquent Relationships

+0

просто комментарий: Вы можете заставить их указывать Афоризм никаких проблем, например, '$ farmer-> hasmany ('chicken')' и '$ chicken-> hasone ('farmer')' –

+0

Нет, это не сработает. В хорошем дизайне базы данных всегда есть hasOne/hasMany, а отношение принадлежит/принадлежит ToMany. Вы говорите, что курица 'hasOne' фермер (фермер ведет запись о том, что 1 цыпленок, а также ведет запись« многих »других цыплят через chicken.farmer_id). – Jeffrey

+0

Да, о том, что вы правы, это была опечатка. Коррекция: это должно быть '$ chicken-> принадлежит ('farmer')'. хорошее место! –