ile Sorgulama biraz karışık, neden bu çalışmıyor.Symfony - Sorgulama
İki varlığa sahibim, kullanıcı adı verilen bir varlık ve shed adında bir varlık var. 1 kullanıcı bir çok tutmaya sahip olabilir ve 1 kullanıcı bir kutuya ait olabilir.
Ne ben başarmak istiyorum ben yayınlanmaktadır aktif kullanıcılardan en yeni 3 tutuyor sorgulamak yani, bir ManyToOne
class User
{
/**
* @var boolean
*
* @ORM\Column(columnDefinition="TINYINT(1) NOT NULL")
*/
protected $active = true;
/**
* @ORM\OneToMany(targetEntity="AppBundle\Entity\Shed", mappedBy="user")
*/
protected $shed;
}
class Shed
{
/**
* @ORM\ManyToOne(targetEntity="AppBundle\Entity\User", inversedBy="shed")
* @ORM\JoinColumn(name="user", referencedColumnName="id", onDelete="CASCADE")
*
* @var User
*/
protected $user;
/**
* @var boolean
*
* @ORM\Column(columnDefinition="TINYINT(1) NOT NULL")
*/
protected $published = false;
}
ile bağlanır.
class ShedRepository
{
public function getNewestSheds()
{
$query = $this->createQueryBuilder('s')
->join('AppBundle:User', 'u')
->andWhere('u.active = 1')
->andWhere('s.published = 1')
->orderBy('s.createdAt', 'DESC')
->setMaxResults(3)
->getQuery();
return $query->getResult();
}
}
shed.published mülkiyet 0'dır kulübe gösterilmez: Benim ShedRepository olarak
i aşağıdaki yöntemi var. Kulübenin yayınlandığı, ancak kullanıcı inaktif ise, döken de gösterilir, ancak olmamalıdır. Herkes bana yardım edebilir mi?
active
öznitelik için
bu doğru değil, sütunu belirtmek için columnDefinitions'ı kullanabilirsiniz. ve öznitelik varsayılan değeri false değerine ayarlanmış :) Ya da, değişiklikleriniz benim prob'umu çözmüyor :( – Sharpy35
Koşulların olduğu durumlarda '1' yerine' TRUE' kullanmayı deneyin, örneğin: -> veWhere ('u.active = TRUE') ' – Miro
bunu denedi, sonucu yanlış anlamadığını, sonucunu değiştirmediğini, yayınlanan kısıtlamayı çalıştığını, ancak etkin değil :( – Sharpy35