1

1ユーザーがストアからメディアに対して行った「いいね!」のリストを取得できます1

$medias = User::find(1)->likes()->with('media')->whereHas('media', function($q) {
    $q->where('store_id', '=', 1);
})->get();

しかし、メディアのリストを取得する必要があるので、試してみました

$medias = User::find(1)->likes()->with('media')->whereHas('media', function($q) {
    $q->where('store_id', '=', 1);
})->get()->media;

しかし、それから私は得る

未定義のプロパティ: Illuminate\Database\Eloquent\Collection::$media

class User extends Model
{
    public function likes()
    {
        return $this->hasMany('App\Like');
    }
}

class Media extends Model
{
    public function store()
    {
        return $this->belongsTo('App\Store');
    }

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

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

    public function media()
    {
        return $this->belongsTo('App\Media');
    }
}
4

2 に答える 2

0

動作するようにしました

$store->medias()->whereHas('likes', function($q) use($user) {
        return $q->where('user_id', '=', $user->id);
    });
于 2015-06-21T15:11:11.043 に答える