با سلام
داخل فرم ها اگر کاربر زبان تایپ رو بزاره رو فارسی موقع ثبت اطلاعات عددی مثل شماره موبایل ارور میده به این صورت که انگار چیزی وارد نشده و اگه هم شده مقدار وارد شده رو صحیح نمیدونه :/
این مشکل وقتی سایت توسط کامپیوتر لود میشه نیست و فقط در موبایل و ... به وجود میاد
کسی میدونه علت و راهکار برطرف کردنش چیه؟
@hossein0065 یک میدلویر درست کنید به اسم normalizeNumbers و هروقت رکوئست mobile یا password یا هر چیزی که میاز دارید وجود داشت اعداد فارسی و عربی رو به لاتین تبدیل کنید.
اگر متوجه نشدید بگید بیشتر توضیح بدم
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\TransformsRequest;
class NormalizeNumbersMiddleware extends TransformsRequest
{
protected $attributes = [
'mobile',
'password',
];
protected function transform($key, $value)
{
if (in_array($key, $this->attributes)) {
$value = normalize_number($value);
}
switch ($key) {
case 'mobile':
$mobile = str_replace(' ', '', trim($value));
$value = '0' . substr($mobile, -10);
$mobilePat = '/^09[0-9]{9}$/';
if(!preg_match($mobilePat, $value)){
return 'invalid';
}
break;
}
return $value;
}
}
اینم متدی که تو helper باید استفاده کنید.
function normalize_number($string)
{
$persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
$arabic = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩', 'ك', 'ي');
$standard = range(0, 9);
array_push($standard, 'ک', 'ی');
return str_replace($persian, $standard, str_replace($arabic, $standard, $string));
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟