在 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'];
    }
     
  }
}