在DebugKit中,当我点击Variables时,我唯一看到的是:
Serialization of 'Closure' is not allowed
例如,我的index
函数的整个代码:
$data = $this->Seasons->find()
->where(['Seasons.user_id' => $this->Auth->user('id')]);
foreach($data as $season){
$s = $season->id;
$leagues = $this->Leagues->find()->innerJoinWith('Games', function ($q) use($s) {
return $q->where(['Games.season_id' => $s]);
}
)
->where(['Leagues.user_id' => $this->Auth->user('id')])
->distinct(['Leagues.name'])
->order(['Leagues.name']);
foreach($leagues as $league){
$l = $league->id;
$gametypes = $this->GameTypes->find()->innerJoinWith('Games', function ($q) use($s, $l) {
return $q->where([
'Games.season_id' => $s,
'Games.league_id' => $l
]);
}
)
->distinct(['GameTypes.sort_order'])
->order(['GameTypes.sort_order']);
//set values to data
$league["game_types"] = $gametypes;
}
//set values to data
$season['leagues'] = $leagues;
}
$this->set(compact('data'));
对我来说,这是一个间歇性的问题。在某些情况下,我可以看到DebugKit的变量很好,其他的则出现这个错误,我必须使用debug()
来查看变量的内容。
编辑#1
蛋糕版:'3.3.10'
编辑#2
代码被实际上不起作用的东西取代。事实证明,之前的代码正在发挥作用。这个,没有。
每当我尝试构建Query对象并使用其他Query对象填充键时,我开始怀疑这个问题会突然出现吗?
编辑#3
我想我找到了解决方案。如果我在所有查询中都致电toArray()
,DebugKit
会向我显示实际内容,而不是错误。
我认为我对编辑#2的怀疑是正确的。那,将基本上Closures附加到其他Closure中的是DebugKit
不喜欢的内容?问题是,像我一样在任何地方调用toArray()
都有问题吗?
答案 0 :(得分:0)
我必须在所有查询中致电toArray()
。