خطا‌‌ها‌ی زیر رخ داد:
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
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




رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نحوه تولید ارور دلخواه و نمایشش اون در ویو
#1
سلام.
استاد نحوه تولید ارور دلخواه و نمایشش اون در ویو چجوریه؟
مثلا برای فروم های اینجوری استفاده میکنیم
[shcode=php]
<?php echo $form->error($model,'rememberMe'); ?>
[/shcode]
حالا فرض کنید ما میخوایم اگه یه کاربر از قبل ثبت نام کرده بود ارور مورد نظر رو نمایش بدیم و یگیم شما ثبت نام کردید و ادامه عملیات متوقف بشه.
[shcode=php]
if(isset($_POST['Doreregister'])){
               $model->attributes = $_POST['Doreregister'];
               if($x = Doreregister::model()->find(array(
                   'condition'=>'user_id=:userID AND dore_id=:doreID',
                   'params'=>array(':userID'=>$user->id,':doreID'=>$model->dore_id),
               ))){
                   throw new CHttpException(404, 'این کاربر قبلا در این دوره ثبت نام کرده است');
               }
               $model->ts = time();
               $model->flag = '1';
               $model->user_id = $user->id;
               if($model->save()){
                   $this->redirect(array('index'));
               }else{
               }
           }
[/shcode]
به جای
[shcode=php]
throw new CHttpException(404, 'این کاربر قبلا در این دوره ثبت نام کرده است');
[/shcode]
از چی استفاده کنم؟
پاسخ
تشکر شده توسط:
#2
البته برای این کار شما (وجود کاربر از قبل) اعتبارسنجیهای خود Yii وجود داره. مثال:
[shcode=php]public function rules()
{
return array(
// ...
array('username', 'unique'),
);
}[/shcode]
ولی اگه بخواین کلاً خطایی رو به یکی از فیلدهای مدل اختصاص بدین، میتونید این شکلی کار کنید:
[shcode=php]$model->addError('username', 'این کاربر قبلاً ثبت نام کرده است.');[/shcode]
اینطوری، چون مدل شما خطا داره، دیگه ثبت نام نمیشه. البته از اونجا که موقع استفاده از متد save روی مدل، دوباره validation اعمال میشه و خطای تولیدشده شما بصورت دستی حذف میشه، ذخیره کردن مدل رو بجای این حالت:
[shcode=php]if($model->save()) { ... }[/shcode]
باید این شکلی کنید:
[shcode=php]if(!$model->hasErrors() && $model->save()) { ... }[/shcode]
پاسخ
تشکر شده توسط: meysam1366
#3
استاد من توی tools اومدم یه تابع نوشتم که یه وردی بهش میدم و خطامو ترجمه میکنه.
بعد اومدم تو کنترلرم اینجوری نوشت
[shcode=php]$this->redirect(array('doreregister/create','id'=>$user->id,'msg'=>20));[/shcode]
و ارور دلخواهمو با متد گت میفرستم به ویو و اونجا ترجمش میکنم.
اما یه مشکلی وجود داره که وقتی ریدایرکت میشه کل محتوای فرمم پام میشه و کار مجددا باید اطلاعاتشو وارد کنه.
برای حل این مشکل چیکار کنم؟
***
راستی ادیتور پیاخ سری هم یه تکت اریا سادست تو انجمن
پاسخ
تشکر شده توسط:
#4
از لینک پاسخ جدید استفاده کنید تا ادیتور رو داشته باشین. روشی که برای نمایش خطا انتخاب کردین درست نیست. بهتره از Flash Message ها استفاده کنید.
پاسخ
تشکر شده توسط:




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