这是我的options array
。
array(2) {
["status"] => string(1) "1"
["dateCreated"] => string(4) "DESC"
}
这是我的hardcoded doctrine findby code
:
$posts = Pluto::registry('doctrine')
->getRepository(\Application\Entity\Post::class)
->findBy(
['status'=>1],
['dateCreated'=>'DESC']
);
我正在寻找的是设置findBy标准的动态解决方案(N标准)。
我在某个地方得到了这个代码(3个点,我实际上并不知道他们是怎么做的,所以如果你可以获得信息,那也很喜欢它)并且它适用于创建对象但这是我已经走了多远(哪个没有工作,因为它返回。
$data = Pluto::registry('doctrine')
->getRepository($config->className)
->findBy(...array_values($newWhereClauses));
// or ->findBy(...$newWhereClauses);
正如您所看到的,当您将参数传递给findBy
方法时,您实际上并未传递数组,而是列和列标准列表
如何将findBy参数从original options array
答案 0 :(得分:0)
如果您需要向方法发送多个(动态数量)参数,可以像这样使用$arguments = [
['status'=>1],
['dateCreated'=>'DESC']
];
$queryInstance = Pluto::registry('doctrine')
->getRepository(\Application\Entity\Post::class);
$posts = call_user_func_array(
[$queryInstance, 'findBy'],
$arguments
);
:
java
在此处阅读更多内容:http://php.net/manual/en/function.call-user-func-array.php