0

0

yii 1.1.16 含图片的文章无法修改

php中文网

php中文网

发布时间:2016-06-06 20:28:35

|

1457人浏览过

|

来源于php中文网

原创

我有个含图片的文章,但是修改的时候就发现,获取不到图片
这是example.php是model文件

/**
 * This is the model class for table "example".
 *
 * The followings are the available columns in table 'example':
 * @property integer $id
 * @property string $img
 * @property string $title
 * @property string $url
 * @property integer $state
 * @property string $detail
 */
public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('img, title, state', 'required'),
            array('state', 'numerical', 'integerOnly'=>true),
            array('title, url', 'length', 'max'=>150),
            array('img', 'file', 'allowEmpty'=>true, 'types'=>'bmp,jpg,png,gif'),
            array('detail', 'safe'),
            // The following rule is used by search().
            // @todo Please remove those attributes that should not be searched.
            array('id, img, title, url, state, detail', 'safe', 'on'=>'search'),
        );
    }

这是ExampleController.php文件

Magic CMS 网站管理系统2.2.1.alpha 政企版
Magic CMS 网站管理系统2.2.1.alpha 政企版

Magic CMS网站管理系统(政企版)采用PHP+Mysql架构,再原CMS系统的基础上精简出适合企业政府客户使用版本,继承了原系统的快捷,高效,灵活,实用的特点,保留了核心功能,系统支持自定义模版(极易整合dede模板)、支持扩展插件,自定义模型等功能,保留了文章模型,视频模型,图集模型,产品模型,能够胜任企业多种建站需求。BUG修复:1.修改了程序安装时部分数据无法正常导入的错误2.修改了程

下载
    public function actionUpdate($id){    
            $model= Example::model()->findByPk($id);
            if($model==null){
                $this->redirect(array('index'));
            }else{
                $oldPic = $model->img;
                if(isset($_POST['Example'])){
                    $model->attributes=$_POST['Example'];
                    
                    $model->img = $oldPic;

                    $fileupload = CUploadedFile::getInstance($model, 'img');
                    if($fileupload != null){
                        $filename = 'images/'.time().'.'.$fileupload->extensionName;
                        if($fileupload->saveAs($filename)){
                            $model->img = $filename;
                            if(file_exists($oldPic))unlink($oldPic);
                        }
                    }
                    
                    if($model->save()){
                        $this->redirect(array('index'));
                    }else{
                        $this->render('update',array(
                        'model'=>$model,
                    ));
                    }
                }else{
                    $this->render('update',array(
                        'model'=>$model,
                    ));
                }
            }
    }

这是view文_form.php

beginWidget('CActiveForm', array(
    'id'=>'example-form',
    // Please note: When you enable ajax validation, make sure the corresponding
    // controller action is handling ajax validation correctly.
    // There is a call to performAjaxValidation() commented in generated controller code.
    // See class documentation of CActiveForm for details on this.
    'enableAjaxValidation'=>false,
    'htmlOptions' => array('enctype' => 'multipart/form-data')
)); ?>

labelEx($model,'img'); ?> $model->img)); ?>图片推荐大小为500x600 isNewRecord){ echo ''; }else{ ?>
@@##@@img; ?>"> error($model,'img'); ?>

问题就是我创建成功的这个文件,要编辑除了图片的别的内容时,图片就丢失,他不保存图片

这是我创建成功的图片
yii 1.1.16 含图片的文章无法修改
我把标题修改了一下
yii 1.1.16 含图片的文章无法修改
然后保存结果,问题就出现了
yii 1.1.16 含图片的文章无法修改

到底哪里出问题里,我刚接触yii,我的yii版本是1.1.16,请你们修正一下!!

回复内容:

我有个含图片的文章,但是修改的时候就发现,获取不到图片
这是example.php是model文件

/**
 * This is the model class for table "example".
 *
 * The followings are the available columns in table 'example':
 * @property integer $id
 * @property string $img
 * @property string $title
 * @property string $url
 * @property integer $state
 * @property string $detail
 */
public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('img, title, state', 'required'),
            array('state', 'numerical', 'integerOnly'=>true),
            array('title, url', 'length', 'max'=>150),
            array('img', 'file', 'allowEmpty'=>true, 'types'=>'bmp,jpg,png,gif'),
            array('detail', 'safe'),
            // The following rule is used by search().
            // @todo Please remove those attributes that should not be searched.
            array('id, img, title, url, state, detail', 'safe', 'on'=>'search'),
        );
    }

这是ExampleController.php文件

    public function actionUpdate($id){    
            $model= Example::model()->findByPk($id);
            if($model==null){
                $this->redirect(array('index'));
            }else{
                $oldPic = $model->img;
                if(isset($_POST['Example'])){
                    $model->attributes=$_POST['Example'];
                    
                    $model->img = $oldPic;

                    $fileupload = CUploadedFile::getInstance($model, 'img');
                    if($fileupload != null){
                        $filename = 'images/'.time().'.'.$fileupload->extensionName;
                        if($fileupload->saveAs($filename)){
                            $model->img = $filename;
                            if(file_exists($oldPic))unlink($oldPic);
                        }
                    }
                    
                    if($model->save()){
                        $this->redirect(array('index'));
                    }else{
                        $this->render('update',array(
                        'model'=>$model,
                    ));
                    }
                }else{
                    $this->render('update',array(
                        'model'=>$model,
                    ));
                }
            }
    }

这是view文_form.php

beginWidget('CActiveForm', array(
    'id'=>'example-form',
    // Please note: When you enable ajax validation, make sure the corresponding
    // controller action is handling ajax validation correctly.
    // There is a call to performAjaxValidation() commented in generated controller code.
    // See class documentation of CActiveForm for details on this.
    'enableAjaxValidation'=>false,
    'htmlOptions' => array('enctype' => 'multipart/form-data')
)); ?>

labelEx($model,'img'); ?> $model->img)); ?>图片推荐大小为500x600 isNewRecord){ echo ''; }else{ ?>
@@##@@img; ?>"> error($model,'img'); ?>

问题就是我创建成功的这个文件,要编辑除了图片的别的内容时,图片就丢失,他不保存图片

这是我创建成功的图片
yii 1.1.16 含图片的文章无法修改
我要编辑
yii 1.1.16 含图片的文章无法修改
然后保存结果,问题就出现了
yii 1.1.16 含图片的文章无法修改

到底哪里出问题里,我刚接触yii,我的yii版本是1.1.16,请你们修正一下!!

没用过1,但是翻了下代码,你的问题在rules.

array('img', 'file', 'allowEmpty'=>true, 'types'=>'bmp,jpg,png,gif'),

CFileValidator 如果验证的字段不通过的话会把该字段设置成 null

/**
     * Raises an error to inform end user about blank attribute.
     * Sets the owner attribute to null to prevent setting arbitrary values.
     * @param CModel $object the object being validated
     * @param string $attribute the attribute being validated
     */
    protected function emptyAttribute($object, $attribute)
    {
        if($this->safe) 
            $object->$attribute=null;
        if(!$this->allowEmpty)
        {
            $message=$this->message!==null?$this->message : Yii::t('yii','{attribute} cannot be blank.');
            $this->addError($object,$attribute,$message);
        }
    }
yii 1.1.16 含图片的文章无法修改yii 1.1.16 含图片的文章无法修改

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

150

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

88

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

90

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

61

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

493

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

16

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

12

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

5

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PHP课程
PHP课程

共137课时 | 8.2万人学习

JavaScript ES5基础线上课程教学
JavaScript ES5基础线上课程教学

共6课时 | 6.9万人学习

PHP新手语法线上课程教学
PHP新手语法线上课程教学

共13课时 | 0.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号