php - 十月CMS / 匿名全球范围
问题描述
我正在使用 OctoberCMS Rainlab.User 插件来管理身份验证。
我有各种型号,属于用户。
如何在每个模型上设置匿名全局范围以仅返回属于经过身份验证的用户的记录?
非常感谢您的帮助。
use Auth;
protected static function booted()
{
$user = Auth::getUser();
static::addGlobalScope('user_id', function (Builder $builder){
$builder->where('user_id', $user);
});
}
解决方案
我会在模型的定义页面中创建一个动态范围。你可以在这里阅读更多关于它的信息。
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();
推荐阅读
- apache-spark - spark数据框MapType中不区分大小写的匹配
- azure - 天蓝色 VM 暂存到生产
- sql - 如何在 Oracle SQL 中使用 JOIN 运算符?
- fusion360 - fusion 360如何在曲面中添加唇形
- dart - 在 Flutter 中应该如何构建 BloC?
- git - Visual Studio rebase v git rebase
- dbeaver - 在 DBeaver 右键菜单/GUI 中截断表
- php - 从管理仪表板连接到订单备注创建
- mysql - SQL NOT LIKE 返回所有行而不是相异
- ios - 使用 Instagram 应用程序登录我的应用程序