Как я могу получить «params» из объекта запроса в CakePHP 3?
$response = $this->getTable()->find();
// there are beforeFinds...etc that make this more complex
Когда я отлаживаю $response
Я получаю это (:
// ...
'(help)' => 'This is a Query object, to get the results execute or iterate it.',
'sql' => 'SELECT .... WHERE ... article_id = :c2',
'params' => [
':c0' => [
[maximum depth reached]
],
':c1' => [
[maximum depth reached]
],
':c2' => [
[maximum depth reached]
]
],
// ...
Я хотел бы знать, какова ценность :c2
есть, но я не могу получить params
отлаживать.
Я пробовал это:
\Cake\Error\Debugger::log($response->params);
\Cake\Error\Debugger::log($response->params());
\Cake\Error\Debugger::log($response['params']);
\Cake\Error\Debugger::log($response->getParams());
\Cake\Error\Debugger::log($response->getQueryParams());
Но никто не работает.
Увеличив глубину отладки, я смог увидеть дополнительную информацию, в том числе значения :c2
\Cake\Error\Debugger::log($response, 'debug', 4); // default depth is 3
Вы должны быть в состоянии получить их через $response->valueBinder()->bindings()
,
Ты можешь использовать __debugInfo()
метод:
$result = $this->Pages->find()->where(['is_public' => 1]);
dd($result->__debugInfo()['params']);