mstdmstd
Новичок
Привет,
В Laravel 6 есть запрос с обьявлениями( ads ) со связанными списками жалоб( ad_report_abuses )
и категорий (ad_categories), вроде
И файл ресорса:
и
это работает нормально.
Но мне также нужно добавить глвную картинку из связанных картинок (ad_images rows), вроде :
Я заню что добавление выше можно сделать используя mapping :
Но тогда я теряю “meta” имформацию, которая нужна лоя паджинации.
Полагаю что я должен сделать relation в Ad модели для ad_images rows с нужными условиями,
Это возможно? если да, то как?
Спасибо!
В Laravel 6 есть запрос с обьявлениями( ads ) со связанными списками жалоб( ad_report_abuses )
и категорий (ad_categories), вроде
PHP:
$ads = Ad
::with('adReportAbuses.user')
->with('adCategories.category')
->getByTitle($this->filter_title)
->onlyNoneInfo()
->getByStatus('A')
->getUserByStatus('A')
->leftJoin('users', 'users.id', '=', 'ads.creator_id')
->orderBy($this->order_by, $this->order_direction)
->select(
'ads.*',
'users.name as creator_username',
'users.email as creator_email',
'users.phone as creator_phone'
)
->offset($limit_start)
->take($ads_per_page)
->distinct()
->paginate($ads_per_page);
return (new AdCollection($ads));
PHP:
class AdResource extends JsonResource
{
public static $wrap = 'ads';
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'adCategories' => AdCategoryResource::collection($this->whenLoaded('adCategories')),
PHP:
class AdCategoryResource extends JsonResource
{
public static $wrap = 'ad_categories';
public function toArray($request)
{
return [
'id' => $this->id,
'ad_id' => $this->ad_id,
'category_id' => $this->category_id,
'category' => new CategoryResource($this->category),
Но мне также нужно добавить глвную картинку из связанных картинок (ad_images rows), вроде :
PHP:
$adImage= AdImage
::getByAdId($adItem->id)
->getByMain(true)
->first();
if ($adImage) {
$adItem->main_image= $adImage->image;
$adItem->main_image_info= $adImage->info;
} {
// if there are no rows found with ad_images.main == true, then get 1 row from ad_images by smalles id
}
PHP:
->map(function ($adItem) {
...
})
->all();
Полагаю что я должен сделать relation в Ad модели для ad_images rows с нужными условиями,
Это возможно? если да, то как?
Спасибо!