2016-06-14 5 views
0

У меня есть эта форма, чтобы загрузить изображение вместе с другой информацией.Загрузка изображения в yii framework

<h2>Enter your details</h2><br> 
<form method="POST" action="<?php echo Yii::$app->request->baseUrl;?>/prac/add-now" role="form"> 
    <label>Upload your photo:<br></label><input type="file" name="image" ><br><br> 
    <input type="name" name="name" id="name" placeholder="Name" required><br><br> 
    <input type="text" name="mobile" placeholder="Mobile number" > <br><br> 

    <input type="email" name="email" placeholder="Email"><br><br> 
    <button type="submit" class="btn btn-default">Add</button><BR><BR> 
</form> 

и этот контроллер:

public function actionAddNow() 
{ 
    $request = Yii::$app->request; 
    $session = Yii::$app->session; 
    $session->setFlash('message', 'You have successfully added the details.'); 
    $name = $request->post('name'); 
    $email = $request->post('email'); 
    $mobile = $request->post('mobile'); 

    $image=$request->post('image'); 

    if ($this->validate()) { 
     $this->image->saveAs('/' . $this->image->baseName . '.' . $this->imageFile->extension); 
     return true; 
    } else { 
     return false; 
    } 

    $add=new prac(); 
    $add->Name=$name; 
    $add->Email=$email; 
    $add->Contact=$mobile; 
    $add->Image=$image; 
    $add->save(); 

    return $this->redirect(Yii::$app->request->baseUrl.'/prac/index'); 
} 

Я получил эту ошибку:

Calling unknown method: app\controllers\PracController::validate()

+1

показать свою модель –

+0

Просмотрите http://www.yiiframework.com/doc-2.0/guide-input-file-upload.html пример загрузки и проверки файлов. – MacGyer

ответ

1

вы использовали $this->validate. Это означает, что validate function должно быть в controller. Это в контроллере или модели? если он в модели, то используйте $model->validate(). где $ model - объект вашего Model class.

Смежные вопросы