سلام دوستان من کد زیر رو برای جستجو توی relation های چند به چند نوشتم و کار میکنه.
میخوام لیست شغل های مربوط به یک کمپانی رو نمایش بدم. حالا هر کمپانی میتونه چنتا ادرس داشته باشه و هر کدوم از این ادرس ها میتونن چنتا شغل داشته باشن
ولی حس میکنم از نظر بهینه بودن مشکل داره و میشه بهترش کرد
اگه کسی بگه که چجوری بهترش کنم ممنون میشم
$company = Company::find($id)->with('addresses.jobDetails.job')->first();
$jobs = [];
foreach ($company->addresses as $address) {
foreach ($address->jobDetails as $detail) {
array_push($jobs, [
'id' => $detail->job->id,
'title' => $detail->job->title,
'country' => $detail->job->country,
'city' => $detail->job->city,
'type' => $detail->job->type,
'work_types' => JobType::where('job_id',$detail->job->id)->pluck('title'),
'income' => $detail->income,
]);
}
}
return $jobs;
سلام خسته نباشید
اگه از clean code و design pattern و solid چیزی بدونی خیلی کمکت میکنه
تو باید از repository pattern آستفاده کنی
و هر کدوم از این قسمت ها ببر توی متد جدا
$company = Company::find($id)->with('addresses.jobDetails.job')->first();
$jobs = [];
foreach ($company->addresses->jobDetails as $address) {
foreach ($address as $detail) {
array_push($jobs, [
'id' => $detail->job->id,
'title' => $detail->job->title,
'country' => $detail->job->country,
'city' => $detail->job->city,
'type' => $detail->job->type,
'work_types' => JobType::where('job_id',$detail->job->id)->pluck('title'),
'income' => $detail->income,
]);
}
}
return $jobs;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟