2016-02-10 3 views
0

Я новичок в laravel5. Я использую отношения «От многих до многих», чтобы получить все сообщения на основе данного тега.Laravel 5 | От многих до многих Отношения не работают

СООБЩЕНИЕ МОДЕЛЬ:

function tags(){ 
     return $this->belongsToMany('App\tags')->withTimestamps(); 
    } 

TAGS МОДЕЛЬ:

public function messages() { 
    return $this->belongsToMany('App\messages', "messages_tags",  "messages_id", "tags_id"); 
    } 

МОЯ ВХОД:

$tag = App\tags::where('name','public')->first(); 

($ тег :)

App\tags {#681 
id: "5", 
name: "Public", 
created_at: "2016-02-10 13:51:36", 
updated_at: "2016-02-10 08:21:36", 
} 

Я пытался получить сообщения с тегом.

$tag->messages()->get(); 

МОЙ ВЫВОД:

[] 

Но у меня есть сообщения с тегом "Public".

Что не так с моим кодом?

+0

пытаются д.д. ($ tag-> сообщение), то, если вы можете увидеть результат поставить $ tag-> Сообщение-> Get() – SarangaR

+0

Это также возвращение «[]» –

+0

вы можете поместить вашу структуру таблицы? – SarangaR

ответ

2

В вашей Message модели в методе tags() вы должны указать имя таблицы messages_tags поворота, а также (в том числе «messages_id» и «tags_id») и получить доступ к messages вы должны использовать:

$tag->messages; 

Или вы можете использовать (бор загрузки):

$tag = App\tags::with('messages')->where('name','public')->first(); 

Затем используйте:

$tag->messages; 
+0

Спасибо Q Soo much ... Its Working ...! –

+0

Добро пожаловать :-) –

0

См: https://laravel.com/docs/5.1/eloquent-relationships#many-to-many

У вас есть какое-либо сообщение, связанные с данным тегом?

$tag = App\tags::where('name','public')->first(); 
dd($tag->messages()->get()); 
+0

Нет. Возврат Пусто –

+0

Просьба отметить запись и соответствующую запись сообщения, только dd, выбрав по id –

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