尽管在我的 core.php 中将 debug 设置为 2,但从任何控制器方法调用的 $this->redirect 似乎都会导致空白屏幕错误。
在我的 AdminAppController 中,位于 App/Plugin/Admin/Controller 中,这段代码最初是在我的 beforefilter() 中:
public function beforeFilter() {
parent::beforeFilter ();
$rusername = $this->Auth->user ( "Username" );
if ($rusername != "admin") {
$this->redirect ( "/" );
return;
}
无论用户名如何,此结果都是管理员范围的空白屏幕错误。通过注释掉重定向,它允许我再次进入管理区域。
但是,现在每当我使用 $this->redirect 时,都会出现黑屏错误。
例如,这是我通过产品控制器查看的价格视图:
<?php echo $this->Session->flash('flash');?>
<?php echo $this->Form->create('Product', array('action' => 'change')); ?>
<fieldset>
<h3>Products</h3>
<table>
<?php
foreach($products as $k=>$v){
echo $this->Form->hidden("Product.{$k}.id", array('value'=> $v["Product"]['id']));
echo $this->Form->input("Product.{$k}.name", array('value' => $v["Product"]["name"], 'disabled' =>'disabled'));
echo $this->Form->hidden("Product.{$k}.slug", array('value'=>$v["Product"]['slug']));
echo $this->Form->hidden("Product.{$k}.description", array('value'=>$v["Product"]['description']));
echo $this->Form->hidden("Product.{$k}.cateID", array('value'=>$v["Product"]['cateID']));
echo $this->Form->input("Product.{$k}.price", array('value' => $v["Product"]['price']));
echo $this->Form->hidden("Product.{$k}.photo", array('value'=>$v["Product"]['photo']));
echo $this->Form->hidden("Product.{$k}.photo_dir", array('value'=>$v["Product"]['photo_dir']));
echo $this->Form->hidden("Product.{$k}.active", array('value'=>$v["Product"]['active']));
echo $this->Form->hidden("Product.{$k}.views", array('value'=>$v["Product"]['views']));
echo $this->Form->hidden("Product.{$k}.created", array('value'=>$v["Product"]['created']));
echo $this->Form->hidden("Product.{$k}.modified", array('value'=>$v["Product"]['modified']));
}
?>
</table>
</fieldset>
<?php echo $this->Form->end(__('Submit')); ?>
我的产品控制器包含此方法:
public function prices(){
$products = $this->Product->find ("all");
$this->set ("products", $products );
}
从这个视图调用这个方法:
public function change(){
//create() resets model, precaution
$this->Product->create();
$data = $this->request->data;
$this->Product->saveMany($data['Product']);
$this->Session->setFlash( "Prices Saved.");
$this->redirect ( '/' );
return;
}
在提交价格更改时(确实保存和更改数据库,重定向行会导致屏幕变为空白,没有错误或任何其他错误指示。
错误日志没有显示正在发生的事情的迹象。
谢谢。