0

我将我的应用程序放在网络上的生产服务器中,它无法识别我的任何模型。

在我的本地服务器中,这工作正常......

这会在 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' => ''
)

)

这是$powerPRODUCTION 服务器中的调试:

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
4

1 回答 1

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'])

以避免将来出现问题并添加正确的验证以包括所有案例。

于 2013-05-22T14:56:18.720 回答