Всем привет!
Есть товары и есть их копии
Для копий в базе есть столбик 'attach_id' - от какого товара зависит запрашиваемый товар
И если в строке указано значение для attach_id надо достать картинки по этому значению
Вот какой говнокод написал:
$item_id = $this->config['item_id'];
$attach_id = $this->config['attach_id'];
if($attach_id != null){
$xgoods_id = $attach_id;
} else {
$xgoods_id = $item_id;
}
$product = Goods::with([
'ximage' => function ($query) use ($xgoods_id) {$query->where('goods_id', $xgoods_id)->orderBy('position', 'asc');},
'ximages' => function ($query) use ($xgoods_id) {$query->where('goods_id', $xgoods_id)->orderBy('position', 'asc');}
])
->where('id', $item_id)->where('published', 1)->first();
dd($product);
и модели
public function ximage(){
return $this->hasOne('App\Http\Models\Site\Images');
}
public function ximages(){
return $this->hasMany('App\Http\Models\Site\Images');
}
проблема в том что достает картинки только для товара, где значение для
attach_id == null
, а если таковая имеется то ничего не находит
SQL запросы вот так получаются (достаем для товара с id 1586 - картинки по id 105
1 => array:3 [▼
"query" => "select * from `images` where `images`.`goods_id` in (1586) and `goods_id` = ? and `images`.`deleted_at` is null order by `position` asc"
"bindings" => array:1 [▼
0 => 105
]
"time" => 0.4
]
2 => array:3 [▼
"query" => "select * from `images` where `images`.`goods_id` in (1586) and `goods_id` = ? and `images`.`deleted_at` is null order by `position` asc"
"bindings" => array:1 [▼
0 => 105
]
"time" => 0.35
]
что тут можно сделать?