【问题标题】:Upload and its behaviors do not have a method or closure named "getErrors"上传及其行为没有名为“getErrors”的方法或闭包
【发布时间】:2015-05-13 02:11:03
【问题描述】:

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

  1. 模型上传.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. 控制器.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));
        }
    }
    

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

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

第 10 行在哪里 &lt;?php echo $form-&gt;errorSummary($model); ?&gt;

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

【问题讨论】:

  • 我将代码更改为 'multipart/form-data')); ?>
    并且我不再收到任何错误,但是它无法识别帖子。为什么?
  • 即使在我按下提交后,我每次都会得到“无图像”。

标签: php file-upload yii


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 这会给出错误:致命错误:在 /volume1/web/website/protected/modules/admin/themes/admin/views/meme 的非对象上调用成员函数 fileField() /upload.php 第 10 行
    • 尝试添加 'enctype' => 'multipart/form-data' as - ** $form=$this->beginWidget('CActiveForm', array( 'htmlOptions' => array( ' enctype' => 'multipart/form-data', ), ));**
    • 谢谢。表单似乎正在加载。你能解释一下为什么必须这样做吗? ** 编辑 ** 实际上,不,抱歉,仍然不起作用。出现错误:上传及其行为没有名为“hasErrors”的方法或闭包。
    • 伙计们好吗?任何人?我对 Yii 真的很陌生 :(
    猜你喜欢
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-28
    • 1970-01-01
    相关资源
    最近更新 更多