jeudi 5 janvier 2017

Larvel 5 - Eloquent: easier way to filter a many to many relationship

I have a many to many relationship between Lists and Users. This is the List Model:

class ListModel extends Model
{
  protected $table = "lists";

  public function users()
  {
    return $this->belongsToMany('App\Models\User', 'list_user', 'list_id', 'user_id')->withTimestamps();
  }

}

This is the User model:

class User extends Authenticatable
{

    public function lists()
    {
    return $this->hasMany('App\Models\ListModel');
    }
}

In a list page, I need to get all the lists belonging to the logged user. The only solution I found is this one:

$user = \Auth::user()->id;
$all_lists = ListModel::whereHas('users', function ($query) use ($user) {
   $query->where('user_id', $user);
})->active()->get();

is there any simpler way to achieve the same result?



from Newest questions tagged laravel-5 - Stack Overflow http://ift.tt/2ieDD87
via IFTTT

Aucun commentaire:

Enregistrer un commentaire