2014-02-28 29 views
0

喜大師4臺警予查詢我已經4個表與CActiveDataProvider

-pegawai -penilaian -universitas -jurusan

我通常使用

SELECT u.nama_univ, j.singkatan, peg.* FROM pegawai AS peg LEFT JOIN penilaian AS pen ON pen.no_test=peg.no_test LEFT JOIN universitas AS u ON u.id=peg.univ_s1 LEFT JOIN jurusan AS j ON j.id=peg.bidang_s1 

如何轉換這種查詢到yii?

我試過這個代碼,但它不工作以及

$dataProvider = new CActiveDataProvider('Pegawai', array(
    'criteria' => array(
     'select' => array(
      '`pen`.*', 
      '`u`.`nama_univ` AS `nama_univ`', 
      '`j`.`singkatan` AS `singkatan`' 
     ), 
     'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test`', 
     'join' => 'JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test`', 
     'join' => 'JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`', 
    ) 
)); 

,但只有一個連接有執行

+0

你創建的模型爲你的表? –

+0

是的,我有。但我混淆了數組關係 – user3266768

+0

你試過了什麼?人們用你的代碼來幫助你,他們通常不會爲你寫信。 –

回答

0

做一件事,你只需打印出標準的物體,像

$dataProvider = new CActiveDataProvider('Pegawai', array(
    'criteria' => array(
     'select' => array(
      '`pen`.*', 
      '`u`.`nama_univ` AS `nama_univ`', 
      '`j`.`singkatan` AS `singkatan`' 
     ), 
     'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test`', 
     'join' => 'JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test`', 
     'join' => 'JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`', 
    ) 
)); 
echo "<pre>"; 
print_r($dataProvider); //Check the object or try to post it below 
exit(); 
0

你已將3個值分配給數組('join')的相同索引,因此只有最後一個被存儲。

嘗試:

$dataProvider = new CActiveDataProvider('Pegawai', array(
'criteria' => array(
    'select' => array(
     '`pen`.*', 
     '`u`.`nama_univ` AS `nama_univ`', 
     '`j`.`singkatan` AS `singkatan`' 
    ), 
    'join' => 'JOIN `Penilaian` AS `pen` ON `pen`.`no_test` = `t`.`no_test` JOIN `Universitas` AS `u` ON `u`.`id` = `t`.`no_test` JOIN `Jurusan` AS `j` ON `j`.`id` = `t`.`no_test`', 
) 
)); 
相關問題