-1
私はちょっと混乱しています。なぜこれが動作しないのですか?Symfony - 参加者を伴うクエリビルダー
私は2つのエンティティ、1つのエンティティはユーザーと呼ばれ、1つはエンティティと呼ばれます。 1人のユーザーは1つのユーザーに属し、1つの小屋は1人のユーザーに属します。
彼らは私が達成したい何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;
}
に接続されているが、私は公開されているアクティブなユーザーからの最新の3つの小屋を問い合わせること、です。
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プロパティが0である小屋が示されていない:私のShedRepositoryで
iは、次のような方法があります。シェッドが公開されていてもユーザーがアクティブでない場合、シェッドも表示されますが、表示されません。 誰も助けてくれますか?
active
属性の正しい注釈があるべき
trueでない場合は、 カラムを指定するためにcolumnDefinitionsを使用することもできます。 属性はデフォルト値がfalseに設定されています:) 変更しても私の問題は解決しません:( – Sharpy35
条件の場合は '1'の代わりに' TRUE'を使用してください。例えば ' - > andWhere ( 'u.active = TRUE') ' – Miro
これは試しましたが、何が間違っているのか分からず、公開された制約は機能していますが、アクティブではありません。( – Sharpy35