🚀 تخفیف ۳۵٪ + ۳.۵ میلیون هدیه! برنامه‌نویسی رو الان شروع کن - فقط امروز!
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ طاها صمدی
redis caching
جامعه لاراول ایجاد شده در ۱۶ تیر ۱۴۰۲

سلام ببخشید من دیتام با redis کش کردم نمیدونم چرا وقتی میخوام بخونم Accessor‌ها یا RELATION هایی که از تو ئخیثم بخونم نمیتونم ارورشم اینه

Undefined array key "pic_change"

$cachedBlog = Redis::get('blog_' . $blog['id']);
if (isset($cachedBlog)) {
$blog =(array) json_decode($cachedBlog, true);
} else {
$blog->load($this->getRelations());
Redis::set('blog_' . $blog['id'], $blog);
return $blog;
}

سلام طاهای عزیز

شما آبجکت رو بصورت آرایه صدا زدید و در لاین پایینتر متغیر بلاگ رو به آرایه تبدیل کردید که قابلیت صدا زدن متد ندارید.

کدتون رو به شکل زیر تغییر بدید:

$cachedBlog = Redis::get('blog_' . $blog['id']);
if (isset($cachedBlog)) {
    $blog = json_decode($cachedBlog, true);
    $blogModel = new Blog(); // جایگزین کنید: Blog به مدل موردنظر خود اشاره کنید
    $blogModel->setRawAttributes($blog); // تبدیل آرایه به مدل
    $blogModel->load($this->getRelations()); // بارگذاری روابط Eloquent
    return $blogModel;
} else {
    $blog->load($this->getRelations());
    $redisData = $blog->toArray(); // تبدیل مدل به آرایه
    Redis::set('blog_' . $blog->id, json_encode($redisData));
    return $blog;
}
احمدرضا فاطمی کیا ۱۷ تیر ۱۴۰۲، ۱۰:۳۰