我将我的应用程序放在网络上的生产服务器中,它无法识别我的任何模型。
在我的本地服务器中,这可以正常工作......
这会在foreach数据上出现此错误。
Undefined index: Power
我在控制器中有这个:
$this->set('poderes',$this->Attorney->Power->find('all'));
这在我看来:
?php foreach ($poderes as $power): ?>
<?php debug($power) ?>
<div class="checkbox tooltip" title="<?php echo $power['Power']['texto'] ?>">
<input type="checkbox" name="data[Power][Power][]" value="<?php echo $power['Power']['id'] ?>" id="PowerPower<?php echo $power['Power']['id'] ?>" />
<label><?php echo $power['Power']['resumo'] ?></label>
</div>
<?php endforeach ?>
在我的本地服务器中,这是$power
的调试:
array(
'Power' => array(
'id' => '1',
'resumo' => 'Negociacao',
'texto' => '<b>(a)</b> formalizar a transmissao, novacaoo, confissao, dacao em pagamento e transacao de obrigacoes cujo sujeito ativo (credora) seja a OUTORGANTE e as obrigacoes sejam decorrentes de suas operacoes;',
'teste' => ''
)
)
这是PRODUCTION服务器中$power
的调试:
array(
(int) 0 => array(
'id' => '1',
'resumo' => 'Negociacao',
'texto' => '<b>(a)</b> formalizar a transmissao, novacaoo, confissao, dacao em pagamento e transacao de obrigacoes cujo sujeito ativo (credora) seja a OUTORGANTE e as obrigacoes sejam decorrentes de suas operacoes;',
'teste' => ''
)
)
这显示我Undefined index ['Power'].
但是,查询适用于控制器:
Nr Query Error Affected Num. rows Took (ms)
1 SELECT `Power`.`id`, `Power`.`resumo`, `Power`.`texto`, `Power`.`teste` FROM `litigium_societario`.`powers` AS `Power` WHERE 1 = 1
答案 0 :(得分:0)
我可能错了,但听起来你正在犯这些错误因为你的生产( - 因此数据库中没有数据 - ......呃,我猜),你没有验证find()(例如)实际有那些索引。
要检查,请执行此操作:专注于一个抛出该错误的操作,检查您是否正在执行类似
的操作$results = $this->Model->find('all', array('conditions'=>array(/* add a condition you know won't give any results back*/));
echo $results['Model'];
没有结果的查找将为您提供一个空数组
pr($results);
//gives
Array(
);
而不是
Array('Model'=>null)
因此,如果您在此之后尝试获取值而未实际检查数组是否有结果,则会为您提供索引通知。
这应该是你的错误。尽管如此,如果您将debug设置为0,您可以绕过那些讨厌的通知,但我建议您检查所有操作并添加一个简单的
if (count($results) > 0)
// or
if (isset($results['Model'])
以避免将来出现问题,并添加正确的验证以包含所有案例。