PDA

View Full Version : validate فیلد name (حل شد)



engmmrj
چهارشنبه 14 اسفند 1392, 21:29 عصر
من میخوام فیلد name رو یک کار کنم که فقط string بگیره ولی yii همچین چیزی نداره !

nadi_1368
چهارشنبه 14 اسفند 1392, 22:19 عصر
مطمئنی نداره!!!!!!!!!!!!!!!!!

پس این (http://www.yiiframework.com/doc/api/1.1/CStringValidator) چیه ؟؟؟؟

MMSHFE
پنج شنبه 15 اسفند 1392, 16:02 عصر
میگم آقای رجبی، شما کی میخواین دست از این عادت بردارین که هر چیزی خودتون پیدا نکردین، نگین وجود نداره! اولاً منظورتون رو از string کاملتر توضیح بدین چون هر چیزی رو میشه بعنوان string درنظر گرفت، ثانیاً هرجور Validation اختصاصی رو میتونید با CRegularExpressionValidator (http://www.yiiframework.com/doc/api/1.1/CRegularExpressionValidator) پیاده سازی کنید.

engmmrj
پنج شنبه 15 اسفند 1392, 20:57 عصر
خوب الان من میخوام بگم فیلد name فقط string باشه یعنی کاربر محمد 12 وارد کرد Invalid بده (درستش محمد)!
با CRegularExpressionValidator (http://www.yiiframework.com/doc/api/1.1/CRegularExpressionValidator) پیاده کردم ولی خیلی زشته خود Yii همچین rules نداشته باشه !

MMSHFE
پنج شنبه 15 اسفند 1392, 21:25 عصر
شما دیگه اینقدر با فریمورکها کار کردین که نوشتن یک خط Validator هم براتون سخت شده! وقتی اینقدر راحت میشه کار کرد:

array('name','match' ,'pattern'=>'#^[a-z]+$#i'),
کجاش زشته؟

engmmrj
پنج شنبه 15 اسفند 1392, 21:47 عصر
شما دیگه اینقدر با فریمورکها کار کردین که نوشتن یک خط Validator هم براتون سخت شده! وقتی اینقدر راحت میشه کار کرد:

array('name','match' ,'pattern'=>'#^[a-z]+$#i'),
کجاش زشته؟
CodeIgniter این قابلیت رو داره ولی Yii با این همه عظمت نداره ! این جز ابتدای ترین rules هست که Yii نداره !

afshin9032
پنج شنبه 15 اسفند 1392, 23:04 عصر
CodeIgniter این قابلیت رو داره ولی Yii با این همه عظمت نداره ! این جز ابتدای ترین rules هست که Yii نداره !

همه چی که نباید حاضر آماده باشه .

خود CodeIgniter این کار رو با regular Experssion انجام میده ، پس چرا وقتی میشه این کار را مستقیم انجام داد و سرعت رو بالا برد هی لقمه را دور سر بگردونیم .

نتیجه اینکه Yii به دلیل افزایش سرعت این کار رو انجام داده نه در نظر نگرفتن این مورد .

MMSHFE
پنج شنبه 15 اسفند 1392, 23:38 عصر
دوست عزیز، وقتی Validator به این تمیزی مثل CRegularExpressionValidator داره، چرا باید بیاد مدام کارهای تکراری انجام بده؟ حالا حتماً باید فرضاً CAlphabetValidator داشته باشه؟ یا اینکه مثلاً اگه خواستین علاوه بر حروف، از کارکتر _ هم بشه استفاده کرد، باید یک CAlphabetWithUnderScoreValidator هم بگذاره؟ اگه توی چند مدل، نوشتن کد زیر مشکله:

array('name','match' ,'pattern'=>'#^[a-z]+$#i'),
خوب خودتون یک Validator بنویسید و بعد، اینطوری کار کنید:

array('name','alphabet'),
اینقدر همه چیز رو پیچیده و سخت نکنید. حالا فرضاً CI این مورد رو داره ولی Yii یه جور دیگه دستتون رو باز گذاشته. در عوض کلی چیزهای دیگه Yii داره که CI نداره. دلیل نمیشه که بگیم Yii یا CI ضعیف کار کردن. اتفاقاً یکی از بزرگترین امتیازات Yii رو ساختار منعطف و ساده CRegularExpressionValidator توی این فریمورک میدونم. فرضاً میتونید ایمیل رو محدود کنید که فقط از یاهو و جیمیل قبول کنه یا هر کار دیگه که دلتون بخواد. انصافاً اون یک خط pattern کوچکی هم که گفتم کار سختی نیست که بخواین بگین زشته Yii اینجور Validator مخصوص حروف الفبا نداره.