从数组中动态设置方法参数(使用学说中的发现方法)



这是我的options array

array(2) {
 ["status"] => string(1) "1"
 ["dateCreated"] => string(4) "DESC"
}

这是我的hardcoded doctrine findby code

$posts = Pluto::registry('doctrine')
 ->getRepository(ApplicationEntityPost::class)
 ->findBy(
    ['status'=>1],
    ['dateCreated'=>'DESC']
);

我正在寻找的是动态解决方案,以设置发现标准(n Criterias)

我在某个地方找到了此代码(如果您能在ID上进行信息,我实际上不知道他们做什么,它可以欣赏它),并且它用于创建对象返回时工作。

$data = Pluto::registry('doctrine')
   ->getRepository($config->className)
   ->findBy(...array_values($newWhereClauses));
   // or ->findBy(...$newWhereClauses);

正如您在将参数传递到findBy方法时所看到的,您实际上不是传递数组,而是列列表和criterias

我如何将发现参数转换为从 original options array

动态的

如果您需要向方法发送几个(动态量)参数,则可以这样使用call_user_func_array()

$arguments = [
    ['status'=>1],
    ['dateCreated'=>'DESC']
];
$queryInstance = Pluto::registry('doctrine')
     ->getRepository(ApplicationEntityPost::class);
$posts = call_user_func_array(
    [$queryInstance, 'findBy'], 
    $arguments
);

在此处阅读更多:http://php.net/manual/en/function.call-user-func-array.php

相关内容

  • 没有找到相关文章

最新更新