سلام
دوستان عزیز قصد دارم در کوئری select خودم که از 3 تا Table با رابطه های بین شون یکی از ستونها خودش یک آرایه باشه
سه تا جدول داریم با نامهای زیر :
users
posts
posts_media
در این جداول به ترتیب اطلاعات کاربران ، پست ها و رسانه های تصویری و عکسهای یک پست قرار میگیرند.
من میخوام یک کوئری داشته باشم که لیست پست ها رو برای یک اپلیکیشن موبایل در قالب json برگردونم که در بحث json هیچ مشکلی وجود ندارد و سئوال اینجاست که چطور میتونم تصاویر یک پست رو که میتونه چند تا باشه و در جدول posts_media ذخیره شده اند رو در یک ستون و بصورت آرایه ای در کنار نام یوزر از جدول users و کپشن پست از جدول posts بر گردونم
تقریبا چیزی که من مد نظرم هست شبیه به خروجی زیر هست :
{
"post_id": 29,
"avatar": "images/avatar/avatar-no.svg",
"fname": "علی",
"lname": "محمدی",
"caption": "دوستان امروز شمال هستیم
"files":
[
{
"file": "web1.mp4",
}
,
{
"file": "web2.mp4",
}
]
},
{
"post_id": 30,
"avatar": "images/avatar/avatar-no.svg",
"fname": "حسین",
"lname": "موسوی",
"caption": "دوستان امروز بندر انذلی هستیم جاتون خیلی خالیه
"files":
[
{
"file": "html.mp4",
}
,
{
"file": "css.mp4",
}
]
}
در واقع قصد دارم ستونی بنام files هم داشته باشم که رکوردهای هر پست رو از جدول رسانه ها استخراج و به همراه اطلاعات دیگه پست نمایش بده
ممنون میشم کسانی که تجربه دارن انتقال بدن
سپاس گذارم
سلام
کار ساده ای هست. باید از روابط استفاده کنید وبعد به صورت زیر کد بزنید
$user = User::all();
foreach ($user as $userItem) {
foreach ($userItem->Post as $postItem) {
$postItem->posts_media;
}
}
نتیجه یک ارایه تو در تو هست که اطالاعات همه کاربران توش هست. توی اطلاعات هر کاربر اطلاعات همه ی پست های اون کاربر هست. توی اطلاعات هر پست تصاویر اون پست هست.
@ashkannazari248
عزیز این روش بهینه نیست برای تعداد رکوردهای چند هزار تایی
من میخوام خود DBMS اینو هندل کنه نه زبان برنامه نویسی
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟