Условия неспециалиста
CakePHP это говорят, чтобы применить массив параметров к коллекции объектов, таким образом, что каждый конкретный объект может изменять параметры, посланные к следующему объекту. Произошла ошибка в том, как CakePHP сообщается об этом.
В Глубина
обобщенно, это поднимается от механизма публикации событий CakePHP. Где-то в вашем коде есть экземпляр ObjectCollection
, который составляет triggered with certain parameters. То есть, метод вызывается для каждого объекта в этой коллекции.
Для каждого метода обратного вызова заданы параметры. Первоначально параметры передаются в trigger()
. В обычных случаях (где modParams
является ложным), каждый обратный вызов получает одинаковые параметры. Но когда modParams
не является строгим ложным, результат каждого обратного вызова перезаписывает параметр, указанный modParams
.
Итак, если в коллекции есть два объекта, modParams - 1, а params [1] - это 'a', то обратный вызов получает первый объект с параметрами [1] == a. Этот обратный вызов возвращает «b», поэтому, когда вызывается следующий обратный вызов, второй объект получает параметры [1] == b.
Исключение возникает, когда заданное значение modParams
не существует в первоначально заданном params
. Например, если modParams
равно 2, а params
- array (0 => 'a', 1 => 'b')
, вы получите это исключение.
В вашем случае
В частности, отладки это должно быть сделано на низком уровне, потому что это метод на общий класс. В обратном направлении от Exception вам должно быть приковано к призыву trigger()
к конкретному конкретному классу. Этот вызов предоставляется недействительным modParams
и params
, который не имеет данных modParams
. Это может быть ошибка кода в конкретном классе, распространяющаяся на ObjectCollection
, или это может быть просто общее сообщение, связанное с методом, которому не даются ожидаемые аргументы.
Я хотел получить более общее объяснение, поскольку комментарии не объясняют, как метод интегрируется с кодом приложения. –