2015-07-18 5 views
2

Привет У меня есть следующие Struture базы данныхLaravel 5 - Многие ко многим отношений - Получение шарнирные данных

User имеет два типа пользователей Artist и Fans и имеет две таблицы artists и fans хранить уникальные данные

пользователя модель

public function artist() 
    { 
      return $this->hasOne('App\Artist'); 
    } 
public function fans() 
    { 
     return $this->hasOne('App\Fan'); 
    } 

Там будет несколько Вентиляторы для художников, так что я создал стержень tĀ BLE хранить отношения

Исполнитель модель

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

Вентилятор Модель

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

сводной таблицы схемы

Schema::create('artist_fan', function(Blueprint $table) 
     { 
      $table->increments('id'); 
      $table->integer('artist_id')->unsigned(); 
      $table->integer('fan_id')->unsigned(); 
      // 
     }); 

Я использовал следующий код, но результат является пустой Коллекция

$user = auth()->user(); 
dd($user->artist->fans); 

выход

Collection {#263 ▼ 
    #items: [] 
} 

Пожалуйста, помогите мне, чтобы получить поклонников текущего вошедшего в Художника. Также выполняем операции CRUD в сводной таблице.

ответ

2

Вы можете попробовать это:

$artists = \App\Artist::has('fans') // Artists who has fans 
         ->with('fans') // load fans 
         ->where('user_id', auth()->user()->id) // Where artist.user_id = logged in user id 
         ->get(); // Get all artists 

if($artists->count()) 
{ 
    $fans = $artists->fans; // Get fans 
} 
+0

если ($ artists-> COUNT()> 0) { $ фаны = $ художников [0] -> вентиляторы; } –

+0

'if ($ artist-> count)' будет работать :-) –

+0

Не работал, когда я его тестировал :) –

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