سلام ،
من کلی گشتم و یک تابع پیدا کردم که تاریخ جلالی رو با استفاده از cabon به تاریخ و فرمت میلادی تبدیل کنه ، تا اینجا مشکلی نیست و تاریخ تبدیل به میلادی میشه ، مشکل اینجاست که این تابع رو کجا بیارم و چطور در تابع store کنترولر مقدارش رو به جدول بفرستم.
اسم فیلد TaskDate هستش ، تابع رو در مدل قرار دادم به این شکل :
public function setTaskDateAttribute($TaskDate)
{
$this->attributes['TaskDate'] = CalendarUtils::convertNumbers($TaskDate, true);
$this->attributes['TaskDate'] = CalendarUtils::createCarbonFromFormat('Y-m-d', $this->attributes['TaskDate'])->format('Y-m-d');
}
در کنترولر هم تابع store را اینطور نوشتم :
public function store(taskRequestStore $request,TaskService $service)
{
$attributes = $request->all(['Caption','TaskDsc',
'office_id','TaskDate','Priority_id',
'Type','Taskfile','StartDate','EndDate','Deadline',
'Commander_id','OtherOffices','Status_id'
]);
$office = $service->create($attributes)->tosql();
return redirect()->back()->with(['create'=>'اطلاعات ثبت شد']);
}
حالا مشکل اینجاست که اون مقداری که به TaskDate در تابع مدل دادم هیچ تاثیری روی مقدار ذخیره شده در جدول DB نمی گذاره و میخواد همون تاریخ جلالی رو ذخیره کنه که خطا می ده.
یکی کمک کنه ممنون میشم.گیر کردم.
برای تبدیل تاریخ میتوانید از پکیج زیر استفاده کنید شمسی به میلادی و برعکس رو انجام میدهد
https://github.com/hekmatinasser/verta
و پیشنهاد میکنم این بخش داکیومنت لاراول رو مجدد مطالعه بفرمایید شما هر چقدر کلین و طبق استاندارد کد رو بنویسید باعث میگردد اگر فرد دیگری روی کد شما خواست کار کنه سردرگم نشه و کد کمتری هم نوشته شود
https://laravel.com/docs/10.x/eloquent#inserts
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟