تا ۶۰ درصد تخفیف شگفت انگیز نوروزی! ( آخرین فرصت )
اطلاعات بیشتر..سلام خدمت همه دوستان
من میخوام تو لاراول تو یه قسمتی یه کدی تعریف کنم که قبل از هر ثبت رکوردی یا هر اپدیتی تک تک فیلد ها برسی شود و یه سری فیلتر روی ان اعمال گردد
به صورت مثال میخوام قبل از ثبت رکورد هر جا (ی - ک ) عربی بود اون رو به فارسی تبدیل کنم یا هر جا عدد فارسی کاربر ثبت کرده بود به اعداد انگلیسی تبدیل بشه .
نمیخوام خودم این کار رو داخل کنترلر هام انجام بدم .
راهی هست برای این کار ؟
در مدل مربوطه شما میتونی از Mutators و Accessors استفاده کنی. یکی قبل از خواندن فیلد یکی بعد از ذخیره یا اپدیت فیلد مورد نظرت
میتونی اینجا بیشتر درباره ش بخونی
https://laravel.com/docs/6.x/eloquent-mutators
اینجا باید واسه هر مدل یه بار این داستان ها رو داشته باشی . من میخواستم اتوماتیک این کار روی همه فیلد هام انجام بشه .
البته من خودم با تعریف یه middleware این کار و انجام دادم . الان همه جا داره درست کار میکنه
کدش رو میزارم دوستان شاید به دردشون بخوره .
<?php
namespace App\Http\Middleware;
use Closure;
class ConvertArabic2Persian
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$temp = [] ;
if ( isset($request->request) ){
foreach ($request->request as $key => $value){
$temp[$key] = $this->arabicToPersian($value);
}
$request->merge($temp);
}
return $next($request);
}
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟