php – 将数组数据分配给Yii中的模型属性

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 将数组数据分配给Yii中的模型属性脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在研究一种激活新成员的方法.我收到以下错误

未定义的偏移量:1

错误发生在包含以下内容的行上:

$模型 – >用户名= $数据[1];

有没有Yii方法让这项工作更好?

我是PHP,oop和Yii的新手,所以任何帮助都会非常感激!

方法基本上从用户获取get请求. get运行此方法并包含用于验证其帐户的密钥.验证存储在与密钥同名的文件中.文件内部是一个以管道分隔的行,其中包含日期,用户名,邮件,salt和密码哈希.在读取文件并在管道上爆炸数据后,我需要将数据分配给模型,然后将其保存到数据库中.

...

        $model=new Users;

        $model->activation_key=$_GET['key'];

        $path_to_validation_files = Yii::app()->basePath."/data/new_member_validations";
        $validation_file = $path_to_validation_files . "/".$model->activation_key.".dat";

        if(is_readable($validation_file) && !empty($validation_file))
        {
            if($fp = foPEn($validation_file,'r'))
            {
                while(!feof($fp))
                {
                    $line = fread($fp,filesize($validation_file));
                }
                fclose($fp);
                $data = explode('|',$line);

                if(!empty($data)){
                    $model->username=$data[1];
                    $model->email=$data[2];
                    $model->salt=$data[3];
                    $model->password=$data[4];
                } else {
                    throw new CHttpException(500,'Validation file contained no data.');
                }

            } else {
                throw new CHttpException(500,'Cannot open validation file.');
            }
        } else {
            throw new CHttpException(404,'Validation file not found,not readable,or empty.');
        }


...

解决方法

您可以使用CActiveRecord类的attributes属性来加载关联数组.

例如,假设您有一个具有属性foo和bar的模型,并且您有一个数组数据(‘foo’=> 1,’bar’= 2)

您可以设置$myModel-> attributes = data,它将遍历数组并将属性分配给模型(但仅当这些属性具有验证规则时)

脚本宝典总结

以上是脚本宝典为你收集整理的php – 将数组数据分配给Yii中的模型属性全部内容,希望文章能够帮你解决php – 将数组数据分配给Yii中的模型属性所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。