2013-05-14 20 views
2
$submodules = Modules::find(
    array(
     'moduleid in (:mods:) and parentid = :parentid:', 
     'bind' => array(
      'mods' => '1,2', 
      'parentid' => 1 
     ), 
     'bindtype' => array(
      'mods' => Column::BIND_PARAM_STR, 
      'parentid' => Column::BIND_PARAM_INT 
     ) 
    ) 
); 

我希望sql是「select * from moduleid(moduleid in(1,2)and parentid = 1」 但結果不正確。如何在phalcon框架中使用「Models :: find()」?

help plz。

回答

1

逃逸:MODS的:將產生 '1,2' 因此:SELECT * FROM模塊,其中的moduleId在( '1,2')和parentId的= 1

您需要使用一個綁定參數用於在每一個值的 「在」:

$submodules = Modules::find(array(
    'moduleid in (:firstMod:, :secondMod:) and parentid = :parentId:', 
    'bind' => array( 
    'firstMod' => 1, 
    'secondMod' => 2, 
    'parentId' => 1 
) 
)); 

在這種情況下是最好使用QueryBuilder的

+0

$模塊= $這個 - > modelsManager-> createBuilder() - >從( '模塊') - > inWhere( 'moduleid',[1,2]) - > orderBy('sorti d'ASC') - > getQuery() - > execute(); 我用QueryBuilder,但輸出502壞道! – kaka 2013-05-15 02:27:24

+0

inWhere('Modules.moduleid') – nkamm 2013-10-28 19:41:51

相關問題