微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ORM问题-未定义的属性

如何解决ORM问题-未定义的属性

我有三个具有这些关系的模型:

权限:

public List<List<string>> GetListFromExcel(string FileName)
{
    try
    {
        List<List<string>> slistofRecords = new List<List<string>>();
        IExcelDataReader reader = null;
        using (var stream = System.IO.File.OpenRead(FileName))
        {
            string sExtension = Path.GetExtension(FileName);
            if (sExtension == ".xls")
            {
                reader = ExcelReaderFactory.CreateBinaryReader(stream);
            }
            else
            {
                reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
            }
            reader.IsFirstRowAsColumnNames = true;
            DataSet result = reader.AsDataSet();
            reader.Close();
            DataTable data = result.Tables[0];
            var excelColdata = new List<string>();
            foreach (DaTarow row in data.Rows)
            {
                var excelRowdata = new List<string>();
                foreach (var item in row.ItemArray)
                {
                    excelRowdata.Add(item.ToString());
                }
                if (excelRowdata.Where(m => !string.IsNullOrWhiteSpace(m)).Count() > 0)
                {
                    slistofRecords.Add(excelRowdata);
                }
            }
        }

        return slistofRecords.distinct().ToList();
    }
    catch (Exception ex)
    {
        ServiceUtil.LogError(ex);
        log.Error("Error",ex);
        throw ex;
    }

}

操作:

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_permission");
    $this->belongsTo('idAction',Action::class,'id',['alias' => 'Action']);
}

资源:

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_action");
    $this->belongsTo('idResource',Resource::class,['alias' => 'Resource']);
    $this->hasMany('id',Permission::class,'idAction',['alias' => 'Permission']);
}

我想要所有的资源诽谤:​​

public function initialize()
{
    $this->setSchema("ngd_demat");
    $this->setSource("p_resource");
    $this->hasMany('id','idResource',['alias' => 'Action']);
}

它返回apache错误日志:

public static function isAllowed($role){
    $resources = [];
    $permission = Permission::find('idRole ='.$role.' AND isAllowed = 1');
    foreach ($permission->action->resource as $resource){
        array_push($resources,$resource->getLibelle());
    }
    return $resources;
}

This is the uml class diagram:

我试图用Permission :: class或“ Security \ Permission”或“ Permission”将别名以小写和大写形式引用。我在loader.PHP中设置了安全名称空间。

谢谢。

解决方法

我试图使用Permission :: find来查找许可,该许可是ResultSet的一个实例。为了解决这个问题,我使用了 findFirst ,它是Permission的一个实例。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。