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


Upload and its behaviors do not have a method or closure named "getErrors"

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

  1. 模型上传.php

    <?php
    class Upload extends CActiveForm
    {
        public $image;
        public function rules()
        {
            return array(
                array('image', 'file', 'types'=>'jpg, gif, png'),
            );
        }
    }
    
  2. 查看上传.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. 控制器.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));
        }
    }
    

关于我为什么得到的任何想法错误 500MemeUpload及其行为没有名为"getErrors"的方法或闭包。?我已经尝试了此链接中的建议,但这并没有真正的帮助。这些更改后我得到的只是另一个错误,即:上传您的模因

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

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

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

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

暂时解决了这个问题。我只是使用标准的HTML表单标签,而不是使用Yii提供的标签。这修复了我遇到的所有错误。