Il bello di scrivere software per se stessi..... non avere scadenze, red-line, step da inseguire ecc ecc.
Per ora ho decommentato il codice relativo al findOneBy e commentato la chiamata al repo e va + che bene.... poi ci ritornerò.
Volevo avere però delle delucidazioni..... sul comportamento di symfony in merito al codice che ho postato.
partendo da questo:
public function getActiveEbooks2( $slug = null)
{
$qb = $this->createQueryBuilder('e');
$qb->select(array('e','c'))
->innerJoin('e.category', 'c')
->where('e.is_actived = :active')
->setParameter('active', 1)
->andWhere('c.is_actived = :c_actived')
->setParameter('c_actived', 1)
->orderBy('e.title', 'DESC');
if($slug)
{
$qb->andWhere('e.slug = :ebook_slug')
->setParameter('ebook_slug', $slug);
}
$query = $qb->getQuery();
return $query->getResult();
}
Allora il la funzione del repositori è sempre la stessa il controller è 1 solo,
nella prima action la chiamo così:
getActiveEbooks2()
Senza parametri e la esegue fino all' OrderBy e sopratutto restituisce un oggetto che nella view userò ebook.title o ebook.slug
nella seconda action chiamerò la funzione con il parametro così:
getActiveEbooks2( $slug )
ora la domanda è per quale motivo l'aggiunta della clausola where o meglio della sua esecuzione (nel primo caso viene saltata non essendoci parametro nella chiamata alla funzione) dovrebbe restituirmi un array e non un oggetto come lo decide?
Ripeto sono nuovo in symfony e anche parecchio arrugginito in fatto di programmazione, forse mi sfugge qual'cosa..... questo comportamento è la norma?