2016-12-19 2 views
2

Я хочу, чтобы невидимые места по локальной области видимостиLaravel Местные рамок с многим ко многому

Place модели имеет многие ко многим отношений с User модели под названием seen()

public function seen() 
{ 
    $user = $this->belongsToMany(User::class,'place_seen'); 

    return $user; 
} 

Я хочу, чтобы невидимые места с локальной области видимости, что-то вроде этого:

/** 
* returns Unseen Places 
*/ 
public function scopeUnSeen($query) 
{ 
    return $query->where(????); 
} 
+1

Вы имели в виду ['scopeUnSeen'] (https://laravel.com/docs/5.3/eloquent#local-scopes)? Laravel требует, чтобы локальные области были префиксом «scope», [читать на источнике] (https://github.com/laravel/framework/blob/5.3/src/Illuminate/Database/Eloquent/Builder.php#L1461). заявляет, что локальные области всегда префикс «scope» и все, что следует за ним, будет именем метода - [ucfirst] (http://php.net/manual/en/function.ucfirst.php). –

+0

@BagusTesa Да, я изменил его –

+0

ну, тогда вы хотите, чтобы область действия 'seen()' извлекала все невидимые места пользователем? или что-то другое..? заботиться о разработке ..? –

ответ

3

Вы можете использовать doesntHave() функцию:

public function scopeUnSeen($query) 
{ 
    return $query->doesntHave('seen'); 
} 
Смежные вопросы