テーブルの 1 つのデータを取得するときに問題が発生します。
Doctrine 1 + Codeigniter を使用していますが、問題は、データが最後の 1 つのレジストリしか取得しないことです。
このテーブル (OpModelos と AnSimNavTrans) の間の関係を定義していません。これがシーナリーです。
コントローラ:
class Modelos extends CI_Controller {
public function view($idModelo) {
$aData['site_description'] = 'AutoDato';
$aData['site_keywords'] = 'keywords';
$aData['site_robots'] = 'robots';
$aData['site_author'] = 'author';
$modelo = Doctrine::getTable('OpModelo')->find($idModelo);
$modelo_caract = Doctrine::getTable('anCaractUserMo')->getByModeloId($idModelo);
$modelos_similares_nav = Doctrine::getTable('OpModelo')->getModeloSimNav($idModelo);
$aData['modelo'] = $modelo;
$aData['modelo_caract'] = $modelo_caract;
$aData['modelos_similares_nav'] = $modelos_similares_nav;
$aData['view'] = 'modelo/view';
$this->load->view('template', $aData);
}
}
データ テーブル AnSimNavTrans
op_modelo_id cod_mod med_sim
1 10 0.9
1 2 0.8
1 11 0.7
1 4 0.5
1 6 0.1
モデル
class OpModeloTable extends Doctrine_Table {
public function getModeloSimNav($idModelo) {
$query = Doctrine_Query::create();
$query->from('AnSimNavTrans');
$query->where('op_modelo_id = ?', $idModelo);
$query->orderBy('med_sim DESC');
$query->limit('3');
$result = $query->execute();
return $result->toArray();
}
}
意見:
print_r($modelos_similares_nav);
Array ( [0] => Array ( [op_modelo_id] => 1 [cod_mod] => 11 [med_sim] => 0.7 ) )
ビューでわかるように、クエリの配列を取得すると、最後のレコードのみが表示されます。
これの何が問題なのですか?