خطا‌‌ها‌ی زیر رخ داد:
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 752 postParser->parse_message
/showthread.php 1063 build_postbit
Warning [2] preg_replace_callback(): Requires argument 2, 'mwsshcode_check("$1","$2")', to be a valid callback - Line: 197 - File: inc/plugins/mwsshcode.php PHP 7.3.4 (Linux)
File Line Function
[PHP]   errorHandler->error
/inc/plugins/mwsshcode.php 197 preg_replace_callback
/inc/class_plugins.php 139 mwsshcode_run
/inc/class_parser.php 187 pluginSystem->run_hooks
/inc/functions_post.php 721 postParser->parse_message
/showthread.php 1063 build_postbit




رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در تابع saveAs
#1
سلام !
این Aliase من :
[shcode=php]
'aliases' => [
'@upload' => '@frontend/upload',
]
[/shcode]

این Model من هستش برای آپلود :
[shcode=php]
<?php

namespace frontend\models;

use Yii;
use yii\web\UploadedFile;

class Register extends \yii\db\ActiveRecord{

public $avatar;

public function rules(){
return [
[['firstName','lastName','userName','passWord','mail'],'required'],
[['firstName','lastName'],'string'],
['passWord','integer'],
['mail','email'],
[['avatar'],'file','skipOnEmpty' => true,'extensions' => 'png,jpg,jpeg,gif']
];
}

public function upload(){
$this->avatar->saveAs(Yii::getAlias('@upload').'/'.$this->avatar->baseName.'.'.$this->avatar->extension);
}

public function attributeLabels(){
return [
'firstName' => Yii::t('app','نام'),
'lastName' => Yii::t('app','نام خانوادگی'),
'userName' => Yii::t('app','نام کاربری'),
'passWord' => Yii::t('app','رمز عبور'),
'firstName' => Yii::t('app','نام'),
'mail' => Yii::t('app','رایانامه'),
'avatar' => Yii::t('app','چهرک')
];
}
}
[/shcode]

این هم کنترلر من :
[shcode=php]
public function actionRegister(){
$model = new Register();
if($model->load(Yii::$app->request->post()) && $model->validate()){
$model->avatar = UploadedFile::getInstance($model,'avatar');
if($model->save()){
$model->upload();
return $this->render('_showResult',['model' => $model]);
}
}else{
return $this->render('_register',['model' => $model]);
}

}
[/shcode]

ولی این ارور رو می ده : Call to a member function saveAs() on a non-object

مشکل از چیست دوستان ؟ Wink
پاسخ
تشکر شده توسط:
#2
شما باید اول model->avatar$ رو مقداردهی کنید و بعد validate رو صدا بزنید. بعد هم چک کنید اصلاً model->avatar$ مقدار میگیره یا هنوز null هست.
پاسخ
تشکر شده توسط: ABZiko
#3
ممنون استاد، یکی از کاربران انجمن Yii اشاره کرد به فرمم، رفتم دیدمش که enctype رو ectype نوشته بودم ...
استاد 3 سوال دیگه هم داشتم :
1. چرا وقتی فایل آپلود می شه نامش رو در دیتابیس ذخیره نمی کنه ... ؟
2. برای اینکه نام فایل رو تغییر بدم دور baseName یک md5 گذاشتم ولی ارور داد، چرا ؟
3. به نظر شما مشکلی داره اگر پوشه آپلود فایلم در frontend و پوشه upload باشه یا بهتره جای دیگه پوشه رو بزارم ؟
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان