Как получить параметры из объекта запроса в CakePHP 3

Как мне получить «параметры» из объекта запроса в 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());

Но никто не работает.


person Dave    schedule 03.02.2018    source источник


Ответы (3)


Увеличив глубину отладки, я смог увидеть дополнительную информацию, включая значения :c2

\Cake\Error\Debugger::log($response, 'debug', 4); // default depth is 3
person Dave    schedule 03.02.2018

Вы сможете получить их через $response->valueBinder()->bindings().

person Greg Schmidt    schedule 04.02.2018

Вы можете использовать __debugInfo() метод:

$result = $this->Pages->find()->where(['is_public' => 1]);

dd($result->__debugInfo()['params']);
person Dariusz Majchrzak    schedule 04.02.2018