Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cakephp 这个错误实际上意味着什么?_Cakephp_Cakephp 2.4 - Fatal编程技术网

Cakephp 这个错误实际上意味着什么?

Cakephp 这个错误实际上意味着什么?,cakephp,cakephp-2.4,Cakephp,Cakephp 2.4,所以我看到这个错误偶尔会出现,但它对描述实际发生的错误没有帮助。它也没有给出任何可能导致它出现的线索 无法将modParams与不存在的索引一起使用。 有谁能更详细地解释这个错误的含义,它与什么有关(如行为、组件、控制器等),最常见的原因以及如何修复它 要开始调查,您可以在此处找到错误。 您试过阅读文档吗 /* * - `modParams` Allows each object the callback gets called on to modify the parameters to t

所以我看到这个错误偶尔会出现,但它对描述实际发生的错误没有帮助。它也没有给出任何可能导致它出现的线索

无法将modParams与不存在的索引一起使用。

有谁能更详细地解释这个错误的含义,它与什么有关(如行为、组件、控制器等),最常见的原因以及如何修复它

要开始调查,您可以在此处找到错误。

您试过阅读文档吗

/*
 * - `modParams` Allows each object the callback gets called on to modify the parameters to the next object.
 *    Setting modParams to an integer value will allow you to modify the parameter with that index.
 *    Any non-null value will modify the parameter index indicated.
 *    Defaults to false.
 */

您没有粘贴任何代码,因此我猜您的方法的第3个参数包含错误的内容。

外行术语
CakePHP被告知将参数数组应用于对象集合,这样每个特定对象都可以修改发送到下一个对象的参数。CakePHP被告知这样做的方式有一个错误

深入
一般来说,这源于CakePHP事件发布机制。代码中的某个地方有一个实例,它是。也就是说,正在对该集合中的每个对象调用一个方法

每个回调方法都给定了参数。最初,参数被传递到
trigger()
。在正常情况下(其中
modParams
为false),每个回调都会获得相同的参数。但是当
modParams
不完全为false时,每个回调的结果都会覆盖
modParams
指示的参数

因此,如果集合中有两个对象,modParams是1,params[1]最初是'a',那么回调将得到第一个对象,params[1]==a。该回调返回“b”,因此当调用下一个回调时,第二个对象将获得params[1]==b

当原始给定的
params
中不存在给定的
modParams
值时,会引发异常。例如,如果
modParams
为2,而
params
array(0=>'a',1=>'b')
,则会出现此异常

在您的情况下

具体地说,调试必须在低级进行,因为它是泛型类上的一个方法。异常的回溯应该会使您对特定的具体类进行
trigger()
调用。该调用被赋予非false的
modParams
和不具有给定
modParams
params
。它可能是扩展了
ObjectCollection
的具体类中的代码错误,也可能只是由于没有为方法提供预期参数而产生的一般消息。

我不理解这个解释。我不会将modParams作为参数传递给任何回调方法。因此提出了这个问题。我希望得到一个更通俗的术语解释。哪一部分是清楚的?什么部分不是?当我说“在你的代码中的某个地方”时,我的意思不一定是你写的代码,而是你正在使用的全部代码。例如,抽象控制器可能期望某些传入参数应用于受控模型,但这些参数不存在,这是生成的通用消息。提供有针对性的建议的最佳方式是查看回溯。不清楚的部分是
将参数数组应用于对象集合
。清楚的部分不是其中的一部分。什么是modParams?设置在哪里?传递的对象是模型、控制器还是视图?这是一个错误的查找、缺少表列、错误的回调还是其他什么的结果?这让人困惑,因为我并没有主动“尝试使用modParams”,这是Cake自动执行的操作。我想理解的是,魔术使这个错误更能描述实际发生的问题。我的意思是实际的对象,而不是方法本身。我认为这个错误的问题在于,它并不表示开发人员编写的问题。它没有给出在哪里查找的线索。它也没有描述或链接到开发人员在自己的应用程序代码中知道的任何内容。这是非常普遍的性质,是它最大的弱点。我的问题围绕着理解而不是修复代码问题。忘记具体的错误,认识到这是
ObjectCollection
的问题。所以我不能回答你的任何一般性问题,因为这是一个通用的、多用途的抽象类。最有可能的原因是,您直接或间接地有一个调用触发器的行为,并且参数不一致。我不知道。如果没有回溯,我无法具体帮助您。我想要一个更一般、更基本的解释,因为注释没有解释该方法如何与应用程序代码集成。