دوره زبان تخصصی برای برنامه‌نویسان (هدیه ویژه ثبت‌نام در دوره‌های متخصص) (فرصت محدود ⏰)
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ هاشم
یک مورد در Model ویدئو برای Accessor‌ها
جامعه لاراول ایجاد شده در ۰۶ دی ۱۴۰۰

در ویدئو اگر دقت کنید موقعی که متد getLengthInHumanAttribute را استاد ساختن بعدش تمام زمان‌های ویدئو یکسان بود به صورت 50:25 که به دلیل اینه که ما value رو پاس دادیم .

فکر میکنم باید از attributes استفاده کنیم تا درست زمان خود ویدئو رو برامون تبدیل به زمان مورد نظر کند به صورت زیر :

public function getLengthInHumanAttribute()
{
    return gmdate("i:s",$this->attributes['length']);
}

که در اینجا گفتیم فقط attributes مربوط به مدل با نام length رو بیا برامون تبدیل کن به gmdate

چون تست کردم دیدم که زمان هارو یکسان زد در صورتی که تو دیتا من زمان‌های مختلف وارد کرده بودم و حس میکنم value به یک مقدار از مدل ما فقط اشاره میکنم و نمیتونه دقیق اتریبیوتی که میخوایم رو پیدا کنه از روی value

این بیشتر نکته بود یا تجربه ، سوال نبود البته :))

دقیقا این سوال منم بود

حسن اکبری ۰۹ دی ۱۴۰۰، ۱۵:۵۰

سلام، ممنون از نکته‌ای که گفتید. اشتباه تایپی بوده :))‌

داخل ویدیو‌های آتی این مورد اصلاح شده.

به جای این مورد میتونید از

$this->length

هم از استفاده کنید.

توضیح تکمیلی هم که میتونم بدم در مورد تفاوت استفاده از attributes و مستقیم صدا کردن length این هستش که زمانی که شما از attributes استفاده میکنید دقیقا مقادیری که داخل دیتابیس هست به شما برگردونده میشه و مثلا اگه زمانی accessor برای یک مقدار ایجاد کرده باشید، هنگام استفاده از attributes دیگه اون accessor اعمال نمیشه.

بهترین پاسخ
مهرداد سامی ۰۹ دی ۱۴۰۰، ۱۷:۰۰

سلام استاده چطور شد؟؟؟ اگر اشتباه به جایی این 

$this->length

شما تایپ کردید 

$this->value

چطوری در ویو شما نمایش داد.؟؟؟ منظور در ویدیو ؟؟

عباسی ۱۶ دی ۱۴۰۳، ۱۴:۵۲