У меня есть следующие отношения.
Profile
---------------------------------------
id profile_image_id otherdetails
---------------------------------------
1 22 ---
---------------------------------------
media
----------------------------------------------
id profile_id path type
----------------------------------------------
22 1 /exes/lod.png profile_image
----------------------------------------------
Профиль имеет СМИ.
Медиа — это коллекция путей к изображениям. и имеет столбец с именем «тип» //
Я хочу загрузить весь профиль с типом медиа = ‘profile_image’;
я хочу произвести что-то вроде ниже:
select * from profile
inner join with media
where media.type ='smthing';
..загрузить модели
$this->profile->with('media')->get_by('type','profile_image') ;;
// runs on profile model than media model.
это не работает
Я видел документация но я не могу понять,
Что-то, что вы делали ранее, похоже на это? Спасибо
Если я не ошибаюсь, тогда это поможет вам.
$this->db->select('p.*');
$this->db->from('profile p');
$this->db->join('media m','p.id = m.profile_id','left');
$this->db->where('m.type','profile_image');
$result = $this->db->get()->result_array();
print_r($result);
Это было решением, конечно, его CI в сочетании с некоторыми помощниками с классом MY_MODEL.
Это индивидуальное решение даже в будущем, благодаря michail1982
public function with_media($type='profile_image') {
$this->_database->join('medias',$this->_table.
'.'.$this->primary_key.' = medias.profile_id')->where('medias.type', $type);
}