上传及其行为没有名为“getErrors”的方法或闭包

时间:2015-03-11 10:25:51

标签: php file-upload yii

我正在尝试构建一个将图像上传到服务器的表单。 所以我有3个文件。

  1. 模型Upload.php

    <?php
    class Upload extends CActiveForm
    {
        public $image;
    
        public function rules()
        {
            return array(
                array('image', 'file', 'types'=>'jpg, gif, png'),
            );
        }
    }
    
  2. 查看Upload.php

    <div class="box">
        <div class="body">
            <header class="clearfix">
                <div class="icons"><i class="icon-picture"></i></div>
                <h5 class="pull-left">Upload Your Memes</h5>
            </header>
            <div class="form">
                <?php $form=$this->beginWidget('CActiveForm'); ?>
    
                <?php echo $form->errorSummary($model); ?>
                <?php echo $form->label($model,'image'); ?>
                <?php echo $form->fileField($model,'image') ?><br>
                <?php echo CHtml::submitButton('Submit'); ?>
                <?php $this->endWidget(); ?>
            </div>
        </div>
    </div>
    
  3. Controller.php这样

    <?php
    class MemeController extends AdminController {
        public function actionUpload() {
            $model=new Upload();
            if(isset($_POST['image']))
            {
                $model->attributes=$_POST['image'];
                $model->image=CUploadedFile::getInstance($model,'image');
                if($model->save())
                {
                    $model->image->saveAs('/volume1/web/memes/templates/test.png');
                    $this->redirect(Yii::app()->request->urlReferrer);
                }
            }
            $this->render('upload', array('model'=>$model));
        }
    }
    
  4. 关于我为什么会这样做的任何想法 错误500 MemeUpload及其行为没有名为“getErrors”的方法或闭包。 ? 我在this链接中尝试了一些建议,但这并没有真正帮助。 我在这些更改后得到的是另一个错误,即: 上传你的模因

    致命错误:在第10行的/volume1/web/website/protected/modules/admin/themes/admin/views/meme/upload.php中的非对象上调用成员函数errorSummary()

    第10行是 <?php echo $form->errorSummary($model); ?>

    任何想法我还能尝试什么?

2 个答案:

答案 0 :(得分:0)

未经测试,但我认为您应该在文件字段下面提交错误 echo $form->fileField($model,'image'); echo $form->error($model,'image');

答案 1 :(得分:0)

现在解决了这个问题。 我只使用标准的HTML表单标签,而不是使用Yii提供的标签。 这种方法解决了我所有的错误。