У меня есть разработчик субъект, который имеет поле роль, $ unsubscribeDate, $ теги и мне нужно найти разработчика, который: - есть роль фрилансер, - unsubscribeDate < NowDate - тег не =: черный список, отписался (inDB a: 2: {i: 0; s: 12: «unsubscribed»; i: 1; s: 9: «черный список»;}) или тег имеют = a: 0: {}Как найти объект в doctrine2
Как я это я не знаю, помогите пожалуйста эту сущность
/**
* Developers
*
* @ORM\Table(name="developers")
* @ORM\Entity(repositoryClass="Artel\ProfileBundle\Entity\DeveloperRepository")
*/
class Developer extends CustomUser
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @var \DateTime
* @ORM\Column(name="unsubscribe_date", type="date")
*/
protected $unsubscribeDate;
/**
* @var string
*
* @ORM\Column(name="tags", type="array", nullable=true)
*/
private $tags = array();
/**
* @var string
*
* @ORM\Column(name="role", type="string", length=25, nullable=true)
*/
protected $roles;
пример жид, что найти разработчика, который имеет $ роль и unsubscribeDate < nowTime и у кого нет: 2: {i: 0; s: 12: «unsubscribed»; i: 1; s: 9: «черный список»;} но если у разработчика есть: 3: {i: 0; s : 12: «unsubscribed»; i: 1; s: 9: «blacklist»; i: 2; s: 7: «company»;} Этот разработчик добавляет в список - неправильно, как я это проверю? И я не знаю, почему разработчик, который имеет поля метки = NULL не добавить в этот список ??:
public function getWhoNotSendEmail($role, $tags)
{
$date = new \DateTime;
$qb = $this->getEntityManager()->createQueryBuilder('d');
$qb
->select('d')
->from('ArtelProfileBundle:Developer', 'd')
->where('d.roles = :role')
->andWhere('d.unsubscribeDate <= :departureDate')
->setParameter('departureDate', $date)
->setParameter('role', $role)
->getQuery();
$query = $qb->getQuery();
$results = $query->getResult();
$arrayResults = array();
foreach ($results as $result) {
if (is_array($result->getTags())) {
if (count(array_diff($result->getTags(), $tags)) > 0) {
$arrayResults[] = $result;
}
}
}
return $arrayResults;
}
$ роли, как это это varible в действии $ бл = [черный список, отписались] перейти к тху чат –
Проверьте это сейчас, чат является оп когда есть много комментариев, а не до –
inDB Developer имеют: 2: {i: 0; s: 12: «unsubscribed»; i: 1; s: 9: «черный список»;} и в моих действиях написать право $ bl? $ bl = ['черный список', 'unsubscribed']; $ dev_tag = $ em-> getRepository ('ArtelProfileBundle: Developer') -> getWhoSendEmail ($ role, $ bl); –