Красноречивое значение для многих - PullRequest
0 голосов
/ 31 марта 2019

Это моя модель голосования:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Vote extends Model
{
    public function user(){
      return $this->belongsTo('App\User');
    }

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

это мой вариант модели:

namespace App;

use Illuminate\Database\Eloquent\Model;

class Option extends Model
{
    public function vote(){
      return $this->belongsTo('App\Vote');
    }

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

Дело в том, что я хочу получить данные о взаимоотношениях многих со многими в модели Option, но начал с модели голосования. Поэтому сначала я получаю данные опций в модели голосования, а затем данные пользователей в модели опций (многие ко многим)

1 Ответ

1 голос
/ 31 марта 2019

У Laravel нет собственной поддержки прямых отношений.

Я создал пакет для таких случаев: https://github.com/staudenmeir/eloquent-has-many-deep

class Vote extends Model
{
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function users()
    {
        return $this->hasManyDeep(User::class, [Option::class, 'option_user']);
    }
}
...