我可以建议你只是添加
user_id
[对于后端=>
后端用户ID
]为您只想访问所有者的数据建模。
现在在
main model
你可以定义
belongsTo
关系和用户可以定义
hasMany
关系
主模型关系[
如果要在后端限制用户,则需要在后端用户模型中添加后端用户关系和后端用户关系
]
class MainModel extends Model
{
// Adding relation to user model
public $belongsTo = [
'user' => 'RainLab\User\Models\User',
'backend_users' =>'Backend\Models\User' // for Backend
];
}
向用户模型添加关系[
你需要把这些代码放到你插件的引导方法中
]
// Extending User Model
\RainLab\User\Models\User::extend(function($model) {
$model->hasMany['mainmodel'] = ['HardikSatasiya\Plugin\Models\MainModel'];
});
// for Backend users
\Backend\Models\User::extend(function($model) {
$model->hasMany['mainmodel'] = ['HardikSatasiya\Plugin\Models\MainModel'];
});
现在访问数据[
前端侧
]
// Returns the signed in user
$user = \Auth::getUser();
dd($user->mainmodel); // it will return collection of related mainmodels
// it will return related data and now its filter by owner
dd($user->mainmodel[0]->otherRelatin);
// for Backend users
// Returns the signed in user
$user = \BackendAuth::getUser();
dd($user->mainmodel); // it will return collection of related mainmodels
// it will return related data and now its filter by owner
dd($user->mainmodel[0]->otherRelatin);
基于登录管理用户筛选listview中数据的示例[
OctoBCMS不提供这样的功能外盒,你不能隐藏一部分数据记录,你可以隐藏整个菜单或基于权利和角色的所有记录,但不能隐藏部分记录
]
public function listExtendQuery($query)
{
$user = \BackendAuth::getUser();
$query->where('backend_users_id', $user->id);
}
添加
backend_users_id
您可以使用此代码
class MainModel extends Model {
public function beforeSave()
{
$user = \BackendAuth::getUser();
$this->backend_users_id = $user->id;
}
}
如有任何疑问,请评论。