En primer lugar, una nota inicial: por convención, su clase Entity debería ser singular. Entonces, Configuración, no Configuración. Se podría argumentar que la "configuración" como un grupo de configuraciones relacionadas podría verse como una sola entidad. Aún así, algo a tener en cuenta.
En Doctrine2, utilizaría un repositorio para realizar este tipo de consulta. En su código donde iba a llamar al Settings::getParam
, en su lugar buscaría el repositorio y lo consultaría. En Symfony2, dicen:
// $em is your entitymanager, as you were going to pass to your method above
// $key is the key you were going to pass to your method above
$repository = $em->getRepository('\FrontendBundle\Settings');
$setting = $repository->getByParam($key);
Por defecto, sin necesidad de escribir código, repositorios definen getByXXXX para cada campo en su entidad.
Si tiene una consulta más complicada que hacer, puede ampliar el repositorio.
use Doctrine\ORM\EntityRepository;
class SettingsRepository extends EntityRepository
{
public function getBySomeComplicatedQuery() {
$sort_order = $this->getEntityManager()
->createQuery('SELECT count(s) FROM FrontendBundle\Settings s WHERE s.value > 32')
->getResult(Query::HYDRATE_SINGLE_SCALAR);
}
}
Y entonces llamarías a ese método de la misma manera.
Otros recomendarían el uso de un objeto Manager que no estaría vinculado a la Entidad/ORM, pero creo que es una complicación innecesaria.
Doctrine2 está específicamente diseñado para no permitirle usar consultas en su archivo Entity; Las entidades y los gestores de entidades son en realidad dos aspectos de la capa de modelo estándar, separados para aplicar las mejores prácticas. Ver este artículo: http://symfony2basics.jkw.co.nz/get-symfony2-working/entities/
Hola, el último enlace se ha ido. – userfuser