在 CodeIgniter 4 中根据用户更改允许的字段
Changing the allowed fields based on user in CodeIgniter 4
我正在构建一个库存系统,其中的用户具有不同级别的权限更改字段。我试图在模型内的一个函数中更改“protected $allowedFields”class 属性,但它不允许我这样做。我是否必须创建 2 个不同的模型,或者将身份验证放入 html 代码中?如有任何建议,我们将不胜感激。
class InventoryModel extends Model
{
protected $table = "tcg_main_inv";
protected $primaryKey = 'id';
protected $allowedFields = ['size'];
public function setInvFields(string $userLevel)
{
if ($userLevel == "admin") {
$allowedFields = ['container_number', 'size', 'dealer_cost', 'date_in',
'sales_order_number'];
} else if ($userLevel)
$allowedFields = ['date_in', 'sales_order_number'];
}
注意:这只是我的模型代码的一个片段。
感谢@ViLar,我找到了一个似乎可行的解决方案。我在模型中创建了一个函数来更改允许的字段。
class InventoryModel extends Model
{
protected $table = "tcg_main_inv";
protected $primaryKey = 'id';
protected $allowedFields;
public function userAuth(string $user_type)
{
if($user_type == "dealer"){
$this->allowedFields = [ 'container_number'];
}
else if ($user_type == "admin"){
$this->allowedFields = ['size', 'container_number', 'dealer_cost'];
}
}
}
我正在构建一个库存系统,其中的用户具有不同级别的权限更改字段。我试图在模型内的一个函数中更改“protected $allowedFields”class 属性,但它不允许我这样做。我是否必须创建 2 个不同的模型,或者将身份验证放入 html 代码中?如有任何建议,我们将不胜感激。
class InventoryModel extends Model { protected $table = "tcg_main_inv"; protected $primaryKey = 'id'; protected $allowedFields = ['size']; public function setInvFields(string $userLevel) { if ($userLevel == "admin") { $allowedFields = ['container_number', 'size', 'dealer_cost', 'date_in', 'sales_order_number']; } else if ($userLevel) $allowedFields = ['date_in', 'sales_order_number']; }
注意:这只是我的模型代码的一个片段。
感谢@ViLar,我找到了一个似乎可行的解决方案。我在模型中创建了一个函数来更改允许的字段。
class InventoryModel extends Model
{
protected $table = "tcg_main_inv";
protected $primaryKey = 'id';
protected $allowedFields;
public function userAuth(string $user_type)
{
if($user_type == "dealer"){
$this->allowedFields = [ 'container_number'];
}
else if ($user_type == "admin"){
$this->allowedFields = ['size', 'container_number', 'dealer_cost'];
}
}
}