Всем привет. никак не могу понять в чем дело как сделать.
Вообщем у меня есть product_id а нужно получить shop_id, вот набросал пример из базы данных
т.е. пройти по порядку слева направо по таблицам по очередности выбирая нужные поля, пробую делать вот так, в модели таблицы product вызываю getshopCity()
public function getProductPrice()
{
return $this->hasMany(shopProductPrice::className(),['product_id'=>'product_id']);
}
public function getProductCity()
{
return $this->hasMany(shopCity::className(),['shop_city_id'=>'shop_city_id'])->via('productPrice');
}
public function getshopCity()
{
return $this->hasMany(shop::className(),['shop_id'=>'shop_id'])->via('productCity');
}
все работает только если вся связка есть, но если например у меня есть товар в product, но его нет в таблице shop_product_price то так сказать связка нарушается и мне пишет что shop_city_id нет, как мне сделать чтобы когда отсутствует соответствующая запись в таблице shop_product_price оно его пропускало и выбирало только записи с полной связкой,
пробовал в getProductPrice() заменить
return $this->hasMany(shopProductPrice::className(),['shop_Product_id'=>'shop_Product_id']);
на простую выборку с базы с условием что product_id не равно NULL но так вообще не работает,
подскажите может я что-то не так делаю?)