Можно ли найти столбцы, использующие несколько значений в Doctrine и Symfony2?


Изображение У меня следующая структура базы данных

class voters
{
    protected $voterid;
    protected $imageid;
    protected $action;
}

// $voterid = is the current voter
// $imageid = is the id of the voted image
// $action = is upvote/downvote,delete

Что произойдет, если я захочу искать несколько элементов одновременно, чтобы проверить, существует ли столбец, что-то вроде

$dummy = findOneBy('voterid'=>1,'imageid'=>2,action=>"upvote");

if($dummy)
{
   //column exists!
}

Возможно ли это?

Author: halfer, 2014-02-03

2 answers

См. Базы данных и доктрина

Если вы хотите получить продукт, касающийся некоторых свойств, вам просто нужно использовать метод findOneBy с массивом параметров:

$product = $repository->findOneBy(array('name' => 'foo', 'price' => 19.99));
 20
Author: Laurent W., 2014-02-03 09:51:37

Вы должны передать все значения в виде массива следующим образом:

$dummy = $this->getDoctrine()->getRepository("AcmeDemoBundle:User")->findOneBy(array(
    'voterid'=>1,
    'imageid'=>2,
    'action'=>'upvote',
));

if($dummy)
{
   //column exists!
}

Где ключ массива - это имя столбца, значение - это значение в этом столбце.

ПРИМЕЧАНИЕ: AcmeDemoBundle:User - это ваша сущность

 3
Author: Victor Bocharsky, 2014-02-03 09:53:56