تالار گفتمان nCIS.ir

نسخه‌ی کامل: مشکل ویرایش تصویر در پروژه ی گالری عکس
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام خسته نباشید
در پروژه ی گالری عکس قسمت 11 آموزش ویرایش تصویر رو گذاشتید که موقعی که مدیر بخواد تصویر قبلی تغییر نکنه ولی مثلا عنوانش تغییر کنه با اررور زیر مواجه میشه

خطای 500

Trying to get property of non-object

و حتما باید مدیر واسه ی ویرایش یک عکس جدید هم انتخاب کنه
اگه راهنمایی کنید ممون میشم
توی فیلم هم همینطوره؟ کدتون رو بگذارین. منظورم ویو و اکشن مربوط به ویرایش عکسه.
(08-03-1394، 11:49 ب.ظ)ADMIN نوشته: [ -> ]توی فیلم هم همینطوره؟ کدتون رو بگذارین. منظورم ویو و اکشن مربوط به ویرایش عکسه.

توی فیلم شما تست نکردید که عکس جدید اضافه نکنیم آیا ویرایش انجام میشه یا نه. منم تو پروژه ی خودم متوجه شدم که برگشتم به فیلم و فایل گالری رو تست کردم دقیقا همین مشکلو داره

این اکشن تو پروژه ی خودتون

public function actionEdit($id)
    {
        if(!($model = Photos::model()->findByPk($id))) {
            throw new CHttpException(404, 'تصویر موردنظر یافت نشد.');
        }
        if(isset($_POST['Photos'])) {
            $model->attributes = $_POST['Photos'];
            $model->likes = 0;
            $model->dislikes = 0;
            $model->visits = 0;
            if($model->save()) {
                $photo = CUploadedFile::getInstance($model, 'photo');
                if($photo->error == 0 && $photo->size <= 1048576 && $photo->type == 'image/jpeg') {
                    unlink(Yii::app()->basePath . '/../photos/' . $model->id . '.jpg');
                    unlink(Yii::app()->basePath . '/../photos/' . $model->id . '_t.jpg');
                    Image::safeUpload($photo->tempName, $model->id);
                }
                $this->redirect(array('index'));
            }
        }
        $this->render('edit',compact('model'));
    }

اینم ویو

<?php $form = $this->beginWidget('CActiveForm', array(
    'id'=>'photos-form',
    'enableClientValidation'=>true,
    'focus'=>array($model,'category_id'),
    'htmlOptions'=>array(
        'class'=>'form-horizontal alert alert-warning',
        'enctype'=>'multipart/form-data',
    )
)); ?>
<h2><span class="fa fa-edit"></span> ویرایش تصویر شماره <?php echo $model->id; ?></h2>
<hr />
<?php echo CHtml::hiddenField('MAX_FILE_SIZE', 1048576); ?>
<div class="form-group">
    <?php echo $form->labelEx($model, 'category_id', array('class'=>'col-sm-3 control-label')); ?>
    <div class="col-sm-5">
        <?php echo $form->dropDownList($model, 'category_id', $model->categoryOptions, array('class'=>'form-control')); ?>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-5 col-sm-offset-3 text-danger">
        <?php echo $form->error($model, 'category_id'); ?>
    </div>
</div>
<div class="form-group">
    <label class="col-sm-3 control-label"> تصویر قبلی</label>
    <div class="col-sm-5">
        <img alt="<?php echo CHtml::encode($model->title); ?>" class="img-thumbnail" src="<?php echo Yii::app()->homeUrl; ?>photos/<?php echo $model->id; ?>_t.jpg" />
    </div>
</div>
<div class="form-group">
    <label class="col-sm-3 control-label" for="Photos_photo"> تصویر جدید</label>
    <div class="col-sm-5">
        <?php echo $form->fileField($model, 'photo'); ?>
    </div>
</div>
<div class="form-group">
    <?php echo $form->labelEx($model, 'title', array('class'=>'col-sm-3 control-label')); ?>
    <div class="col-sm-5">
        <?php echo $form->textField($model, 'title', array('class'=>'form-control')); ?>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-5 col-sm-offset-3 text-danger">
        <?php echo $form->error($model, 'title'); ?>
    </div>
</div>
<div class="form-group">
    <?php echo $form->labelEx($model, 'description', array('class'=>'col-sm-3 control-label')); ?>
    <div class="col-sm-5">
        <?php echo $form->textArea($model, 'description', array('class'=>'form-control','style'=>'resize:none;')); ?>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-5 col-sm-offset-3 text-danger">
        <?php echo $form->error($model, 'description'); ?>
    </div>
</div>
<div class="form-group">
    <?php echo $form->labelEx($model, 'confirmed', array('class'=>'col-sm-3 control-label')); ?>
    <div class="col-sm-1">
        <?php echo $form->checkBox($model, 'confirmed', array('class'=>'form-control')); ?>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-5 col-sm-offset-3 text-danger">
        <?php echo $form->error($model, 'confirmed'); ?>
    </div>
</div>
<div class="form-group">
    <div class="col-sm-5 col-sm-offset-3">
        <?php echo CHtml::submitButton('ویرایش', array('class'=>'btn btn-warning btn-block')); ?>
    </div>
</div>
<?php $this->endWidget(); ?>


هرچی هست مشکل از این قسمته

$photo = CUploadedFile::getInstance($model, 'photo');
                if($photo->error == 0 && $photo->size <= 1048576 && $photo->type == 'image/jpeg') {
                    unlink(Yii::app()->basePath . '/../photos/' . $model->id . '.jpg');
                    unlink(Yii::app()->basePath . '/../photos/' . $model->id . '_t.jpg');
                    Image::safeUpload($photo->tempName, $model->id);
                }
شرط if رو اینطوری اصلاح کنید:
if($photo && $photo->error == 0 && $photo->size <= 1048576 && $photo->type == 'image/jpeg') {