#php #laravel #octobercms #octobercms-plugins
Вопрос:
Я использую OctoberCMS Rainlab.Пользовательский плагин для управления аутентификацией.
У меня есть различные модели, и они принадлежат пользователю.
Как настроить анонимную глобальную область для каждой модели, чтобы возвращать только записи, принадлежащие аутентифицированному пользователю?
Заранее большое спасибо за любую помощь.
use Auth;
protected static function booted()
{
$user = Auth::getUser();
static::addGlobalScope('user_id', function (Builder $builder){
$builder->where('user_id', $user);
});
}
Ответ №1:
Я бы создал динамическую область на странице определения модели. Вы можете прочитать больше об этом здесь.
class PluginModel extends Model
{
/**
* Scope a query to only records with user.
*/
public function scopeGetUserRecords($query, $userId)
{
return $query->where('user_id', $userId);
}
}
Теперь каждый раз, когда вы вызываете свой класс PluginModel, вы можете просто сделать это:
$userRecords = PluginModel::getUserRecords($user->id)->get();