Domanda

Nel mio modello di risorsa personalizzato, sto cercando di utilizzare fetchAssoc per ottenere alcuni dati da una tabella.Sto cercando di citare un array in una dichiarazione in una dichiarazione, e ho notato che non funziona (restituisce un array vuoto) quando si utilizza Bindings nominati.Tuttavia, utilizzando il secondo argomento di $select->where() per citare i valori in Funzioni Fine.

Sono solo curioso perché questo non funziona ...

$bind = array( 
    'expert_id' => $expert_id,
    'product_id' => $adapter->quote($product_id),
);

//Debug:  Array ( [expert_id] => 1, [product_id] => '3032', '3091', '3132' )

$select = $adapter->select()
    ->from($this->getTable('namespace_module/table'), '*')
    ->where('product_id IN(:product_id)')
    ->where('expert_id = :expert_id');

// Debug: SELECT `namespace_module_table`.* FROM `namespace_module_table` WHERE (product_id IN('3032', '3091', '3132')) AND (expert_id = :expert_id)
.

Ma questo fa?

$bind = array( 
    'expert_id' => $expert_id,
);

//Debug: Array(  [expert_id] => 1 )

$select = $adapter->select()
    ->from($this->getTable('namespace_module/table'), '*')
    ->where('product_id IN(?)', $product_id)
    ->where('expert_id = :expert_id');

// Debug: SELECT `namespace_module_table`.* FROM `namespace_module_table` WHERE (product_id IN(:product_id)) AND (expert_id = :expert_id)
.

È una regola generale che non è possibile utilizzare parametri rilegati in una dichiarazione nella dichiarazione?Ho visto e Questo , ma pensavo che il metodo $adapter->quote di Magento avrebbe dovuto prendersi cura di trasformare l'arrayUna lista.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top