CakePHP 3中如何访问Query对象的参数?
在CakePHP 3.x中访问Query对象的绑定参数
嘿,刚好对CakePHP 3的Query对象参数访问熟得很,给你两种实用的方法:
方法1:直接获取参数键值对
如果你只需要拿到像:c0、:c1这类占位符对应的参数值,直接调用Query对象的params()方法就可以了,它返回的数组和你用debug($query)看到的params字段完全一致:
// 先获取你的Query对象 $Substances = TableRegistry::get('Substances'); $query = $Substances->find()->where($where_conditions)->select(['id']); // 获取所有绑定参数 $boundParams = $query->params(); // 访问单个参数,比如:c0的值 $c0Value = $boundParams[':c0']; // 或者遍历所有参数 foreach ($boundParams as $placeholder => $value) { echo "占位符 {$placeholder} 对应的值是 {$value}"; }
方法2:获取完整的绑定元数据
如果需要更详细的绑定信息(比如参数的数据类型),可以用getBindings()方法,它返回的数组里每个元素都包含了parameter(占位符名称)、value(参数值)、type(数据类型)等信息:
$bindings = $query->getBindings(); foreach ($bindings as $binding) { echo "占位符:{$binding['parameter']},值:{$binding['value']},类型:{$binding['type']}"; }
这两种方法都能程序化地拿到你需要的参数,根据实际需求选就行~
内容的提问来源于stack exchange,提问作者Andy
相关产品推荐
相关产品推荐

