Doktrin filtrelerini kullanıyorum ve son zamanlarda filtrelerin ifadeleri silmek için uygulanmadığını fark ettim. Dokümanları ve Google'ı incelemeyi denedim, ancak gizem çözümsüz kalıyor. ÖrneğinDoctrine2 ifadeleri silmek için filtreleri uygular
Öyle gibi her seçme sorgusu şirkete kullanıcıyı bağlayan filtresi vardır: kullanıcı t0 GELEN
$userRepo->find(12);
ve
SEÇ dan değiştirilir .... NEREDE t0.id =
içine 12SEÇ .... kullanıcı t0 WHERE t0.id = 12 AND (t0.company_id = '6')
serin, tek ihtiyacım budur.
Beni rahatsız eden şey, silme ifadelerinin dokunulmamış gibi görünmesidir. Varsayılan doktrin mimarisi mi yoksa yapılandırmamın yanlış mı olduğunu bilen var mı?
filtre Doktrini Depoları bir silme (id) sahip değil gibi
use Doctrine\ORM\Mapping\ClassMetaData;
use Doctrine\ORM\Query\Filter\SQLFilter;
use Doctrine\Common\Annotations\Reader;
class CompanyAware extends SQLFilter
{
/**
* @var Reader
*/
protected $reader;
/**
* @param ClassMetaData $targetEntity
* @param string $targetTableAlias
*
* @return string
*/
public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
{
$query = '';
$ann = 'Mrok\\PortalBundle\\Annotation\\CompanyAware';
$isAware = $this->reader->getClassAnnotation($targetEntity->getReflectionClass(), $ann);
if ($isAware) {
$id = $this->getParameter('id');
$query = sprintf('%s.company_id = %s', $targetTableAlias, $id);
}
return $query;
}
public function setAnnotationReader(Reader $reader)
{
$this->reader = $reader;
}
}
biz sql filtresi görebilir miyim? – Federkun