نقل قول: اعتبار سنجی داینامیک
اینطوری تست کنید ببینید جواب میده:
array('m_number', 'compare','operator'=>'<=','compareValue'=>$this->capa()),
کد متد capa :
public function capa()
{
// access to m_number via $this->m_number
}
نقل قول: اعتبار سنجی داینامیک
ممنون از پاسختون جناب شهرکی
اینو امتحان کردم اما باز کار نکرد در واقع فک کنم مقدار رو دریافت نمیکنه
نقل قول: اعتبار سنجی داینامیک
مشکل چیه ؟ دقیقا میخواید چیکار کنید ؟
نقل قول: اعتبار سنجی داینامیک
من میخوام توی فایل مدل به مقدار فیلدی که کاربر نوشته دسترسی پیدا کنم و براساس اون فیلد های بعدی رو ولیدیت کنم
نقل قول: اعتبار سنجی داینامیک
public function beforeValidate(){
echo CVarDumper::dump($this->attributes,10,true);
Yii::app()->end();
}
توی مدل مربوطه قرار بدید ببینید خروجی چی هستش ؟ و یک مثال از کاری رو که میخواید رو هم مطرح کنید ببینیم چیکار میشه کرد.
نقل قول: اعتبار سنجی داینامیک
خروجی یه آرایه از فیلدهای مدل به همراه مقادیر اون ها هستش ،
نقل قول: اعتبار سنجی داینامیک
نمیدونم چه جوری توضیح بدم یه مثال ساده بگم..
کاربر وارد فرم جاری میشه و میخواد 2 تا فیلد رو پر کنه فیلد اول رو مثلا 1 وارد میکنه و طبق مقدار این فیلد اول ، فیلد دوم ولیدیت بشه یعنی مقدار توی مدل گرفته بشه و داخل یه تابع قرار بدیم و اون تابع بررسی میکنه و یه مقدار برمیگردونه و با اون مقدار ولیدت بشه فیلد دوم!
نقل قول: اعتبار سنجی داینامیک
public $val1 , $val2;
function rules()
{
return array(
array('val1,val2','checkVal'),
);
}
function checkVal($att,$val)
{
if($this->val1 > $this->val2)
{
$this->addError('val1','val1 بزرگتر هست');
$this->addError('val2','val1 بزرگتر هست');
}
}
نقل قول: اعتبار سنجی داینامیک