
Hacer un join en symfony 5
Publicado por qwerty (10 intervenciones) el 28/09/2021 13:31:45
Buenos dias,
Estoy empezando a hacer consultas utilizando el framework de Symfony 5 y tengo el siguiente problema:
Tengo una tabla que se llama "Historico_Garantias" en la cual tengo bastantes campos los cuales algunos estan relacionados con otras tablas.
Uno de esos campos que tiene historico garantias es "usuario" el cual se relaciona con la tabla "Usuarios" que contiene la informacion de estos.
En esta tabla de usuarios esta el campo "delegacion" que simplemente es la localizacion este usuario.
Bien, lo que intento hacer es crear un filtro para que me muestre en pantalla X registros del historico de garantias con X condiciones que tiene que cumplir, una de ellas es que los usuarios solo pueden ver las garantias que estan asociadas a su delegacion. Es decir, si el usuario pertenece a la delegacion de "valencia" solo podra ver los registros de las garantias que estan asociadas a "Valencia"
Como veis he añadido ya algunas de las condiciones que necesito pero no he tenido aun la necesidad de hacer JOINS entre tablas, y no encuentro nada que me aclare como hacerlo.
Como podria poner en esa consulta que por ejemplo:
delegacion=usuario.delegacion (en otra parte del codigo tengo esto app.user.delegacion, que me muestra la delegacion del usuario que se loguea, pero no se aplicarlo a lo que quiero)
Gracias y saludos!
Estoy empezando a hacer consultas utilizando el framework de Symfony 5 y tengo el siguiente problema:
Tengo una tabla que se llama "Historico_Garantias" en la cual tengo bastantes campos los cuales algunos estan relacionados con otras tablas.
Uno de esos campos que tiene historico garantias es "usuario" el cual se relaciona con la tabla "Usuarios" que contiene la informacion de estos.
En esta tabla de usuarios esta el campo "delegacion" que simplemente es la localizacion este usuario.
Bien, lo que intento hacer es crear un filtro para que me muestre en pantalla X registros del historico de garantias con X condiciones que tiene que cumplir, una de ellas es que los usuarios solo pueden ver las garantias que estan asociadas a su delegacion. Es decir, si el usuario pertenece a la delegacion de "valencia" solo podra ver los registros de las garantias que estan asociadas a "Valencia"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
namespace App\Repository;
use App\Entity\HistoricoGarantias;
use App\Entity\Usuarios;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\ORM\Query\Expr\From;
use Doctrine\Persistence\ManagerRegistry;
/**
* @method HistoricoGarantias|null find($id, $lockMode = null, $lockVersion = null)
* @method HistoricoGarantias|null findOneBy(array $criteria, array $orderBy = null)
* @method HistoricoGarantias[] findAll()
* @method HistoricoGarantias[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class HistoricoGarantiasRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, HistoricoGarantias::class);
}
/**
* @return HistoricoGarantias[]
*/
public function sinAbonos()
{
return $this->createQueryBuilder('g'))
->andWhere('g.fechaAbonoCliente IS NULL AND g.abonoClienteRetenido=0 AND g.resolucionIncidenciaCliente!=3 AND g.delegacion=g.usuario.delegacion')
->orderBy('g.fechaEntradaMaterial', 'DESC')
->getQuery()
->getResult()
;
}
Como veis he añadido ya algunas de las condiciones que necesito pero no he tenido aun la necesidad de hacer JOINS entre tablas, y no encuentro nada que me aclare como hacerlo.
Como podria poner en esa consulta que por ejemplo:
delegacion=usuario.delegacion (en otra parte del codigo tengo esto app.user.delegacion, que me muestra la delegacion del usuario que se loguea, pero no se aplicarlo a lo que quiero)
Gracias y saludos!
Valora esta pregunta


0