【问题标题】:OctoberCMS / Anonymous Global Scope十月CMS / 匿名全球范围
【发布时间】:2021-11-10 16:54:13
【问题描述】:

我正在使用 OctoberCMS Rainlab.User 插件来管理身份验证。

我有各种模型,属于用户。

如何在每个模型上设置匿名全局范围,只返回属于经过身份验证的用户的记录?

非常感谢您的任何帮助。

use Auth;

protected static function booted()
    {
        $user = Auth::getUser();
        static::addGlobalScope('user_id', function (Builder $builder){
        $builder->where('user_id', $user);
      });
    }

【问题讨论】:

    标签: php laravel octobercms octobercms-plugins


    【解决方案1】:

    我会在模型的定义页面中创建一个动态范围。你可以阅读更多关于它的信息here

    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();
    

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多