AR find e cugini... where implicita?!?

Sto diventando pazzo. Dopo diversi mesi di sviluppo con Yii, la scrittura di strutture AR piuttosto complesse, ecc.ecc, mi sono accorto di non aver capito NULLA!

Ho una richiesta findAll come la seguente:


$dealeravailabilityproducts = ProductAvailability::model()->dealeravailability($data->id)->findAll();

e ottengo questo errore:


CDbCommand ha riportato un errore nell'esecuzione della query SQL: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ') AND (iddealer = 2)' at line 1. The SQL statement executed was: SELECT * FROM `md_productavailability` `t` WHERE (idproduct = ) AND (iddealer = 2)

Ma come è possibile? Nella mia classe AR ProductAvailability io da nessuna parte richiedo di avere il parametro idproduct definito!




// Parameterized named scopes

    // Get product availability

    public function dealeravailability($iddealer)

    {


        $this->getDbCriteria()->mergeWith(array(

            'condition'=>'iddealer = ' . $iddealer,

        ));


        return $this;

    }



Cosa siavolo succede? Dove sbaglio?

Ciao.

Mauro

Ho capito cosa causava il problema… ho un altro named scope col lo stesso nome della classe AR. Commentandolo funziona.




// Get product availability

//    public function productavailability($idproduct)

//    {

//

//        $this->getDbCriteria()->mergeWith(array(

//            'condition'=>'idproduct = ' . $idproduct,

//        ));

//

//        return $this;

//    }



Tuttavia non capisco perchè il fatto di avere un named scope con lo stesso nome della classe AR si verifichi il problema chiamando un altro named scope. :huh: