Yii——中的各种坑,整理-创新互联

  1. $this->loadModel($id):

    创新互联公司服务项目包括安定网站建设、安定网站制作、安定网页制作以及安定网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,安定网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到安定省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

    gii 自动生成的controller都会有一个很好用的成员方法,用起来感觉高大上,不用在自己findByPk,一大串,但是这里有一个坑表现在两个地方:

 public function loadModel($id)                                                                                                              |@     {                                                                                                                                           |@         $model=AuthsaleCinemaCurrentAuthDetail::model()->findByPk($id);                                                                         |@         if($model===null)                                                                                                                       |@             throw new CHttpException(404,'The requested page does not exist.');                                                                 |@         return $model;                                                                                                                          |@     }
    1. 两个用户同时对admin视图里的同一条记录进行操作,当一个用户删除了一条记录,但是另外一个用户由于没有刷新界面,仍然能看到这条记录,当他进行update操作的时候会界面上会出现一个错误:

      Yii——中的各种坑,整理

      Error 404

      The requested page does not exist.

      为什么会报这个错误?是不是代码写错了?如果你不刷新你的界面,你会发现,这个错误永远存在,而你会费时费力的找原因,系统自动生成的代码怎么也会有bug,宁死不信...最后你可能会费时费力的追踪这个bug,你才发现,loadModel 方法里面,如果这个id找不到数据库中对应的model对象的话,就跑出了404错误.可是这种错误如果发生到ajax请求中,如果调用这个方法,再没有找到对象的时候是很难发现错误发生在哪里

    2. 当自己的ajax请求action方法中调用laodModel方法时,要小心,因为也会报错,这是因为,ajax理应返回json字符串,结果却throw了一个404错误,你就会想,是不是自己的代码写错了?是不是请求的url地址写错了?404嘛,肯定是请求路径的问题,最后你会发现,是因为ajax请求中,laodModel方法抛出了一个404错误;

    3. 总结:在使用loadModel($id)时候,切记,如果能不用尽量不用,用findByPk替代掉loadModel,会省去很多,不必要的担心

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


分享文章:Yii——中的各种坑,整理-创新互联
链接分享:http://scjbc.cn/article/ceschc.html

其他资讯