Код: Выделить всё
CREATE TABLE IF NOT EXISTS `c_data` (
`id` int(11) NOT NULL,
`state` tinyint(4) NOT NULL,
`dateGreate` int(11) NOT NULL,
'data' varchar(128) NOT NULL,
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
данные в таблице
(1,1,1420893673, 'exampal'),
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `c_vagon` (
`id` int(11) NOT NULL,
`name` varchar(128) NOT NULL,
`state` tinyint(3) NOT NULL,
`weight` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
данные в таблице
(1, 'Все виды вагонов', 0, 1),
(2, 'Полувагон', 1, 1),
(3, 'Хоппер', 1, 2),
(4, 'Крытый двухдверный', 1, 3),
(5, 'Крытый однодверный', 1, 4)
записей таблицы c_vagon.
Код: Выделить всё
CREATE TABLE IF NOT EXISTS `c_dataVagon` (
`id` int(11) NOT NULL,
`id_data` int(11) NOT NULL,
`id_vagon` int(11) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
данные в таблице
(1, 1, 2),
(2, 1, 3),
(3, 1, 4),
в моделе dataVagon сделал сделал
Код: Выделить всё
return array(
'vagon' => array(self::HAS_ONE,'Vagon','id'),
);
Код: Выделить всё
public static function returnVagon($id){ //$id - это айди записи таблицы c_data
$result = array();
$datas = VagonObayvRepair::model()->findAll(
array(
'condition'=>'id_data = :id',
'order' => 'id_vagon',
'params'=>array(
':id'=>$id,
)
));
foreach($datas as $val){
$result[] = $val->vagon->name;
}
return $result;
}
/*косят тут мне почему-то возвращает эта запись хотя индентификатор c_dataVagon равен 2, тоесть тут должна быть Полувагон*/
1, 'Все виды вагонов'
2, 'Полувагон'
3, 'Хоппер'
а должен возвращать
2, 'Полувагон'
3, 'Хоппер'
4, 'Крытый двухдверный'
Подскажите пожалуйста в чём косяк??? позарез надо....