Php 在$this之后终止控制器的执行->;负载->;代码点火器视图
您好,我正在为站点使用codeigniter,我正在通过php页面中的表单调用控制器中的函数。函数调用为: Gear.php:Php 在$this之后终止控制器的执行->;负载->;代码点火器视图,php,codeigniter,Php,Codeigniter,您好,我正在为站点使用codeigniter,我正在通过php页面中的表单调用控制器中的函数。函数调用为: Gear.php: foreach ($gearArray as $key => $value) { echo '<tr><td><img id="leftimg" src="'.base_url().''.$value["Product_Image_URL"].'"></td>';
foreach ($gearArray as $key => $value) {
echo '<tr><td><img id="leftimg" src="'.base_url().''.$value["Product_Image_URL"].'"></td>';
echo '<td>'.$value["Description"].'';
echo '<form method="post" id="addtocart" action="'.site_url('GearController/addorUpdate').'">';
echo '<input type="hidden" name="desc1" value="'.$value["Name"].'">';
echo '<input type="hidden" name="cost1" value="'.$value["Price"].'">';
echo '<input type="submit" value="Add To Cart">';
echo '</form></td>';
}
echo '</table>';
?>
这里的问题是,一切正常,页面被重定向,但几秒钟内它就会显示一个空白屏幕。我试着返回、死亡和退出。这些都没用。控制器似乎正在$this->load->view下执行代码。我这样说是因为我以前在
如果($boolean==TRUE){
$this->updateCart($Description)
该特定代码是在重定向后执行的。请有人帮忙吗?这听起来像是在视图文件的开头有一个叫做
BOM
的字符。这个字符通常是不可见的。请确保开头没有(显然)黑色字符
您还可以通过临时将此代码作为函数
echo的第一行来测试updateCart($Description)
是否正在运行“这是updateCart;
然后注释掉该函数中的所有其他代码。如果您在屏幕上看到该文本,您就知道该函数正在运行。这并没有回答您的问题,但它让我感到很不安,所以
而不是这一团糟
foreach ($data['cartArray'] as $value) {
if($Description==$value['Description']){
$boolean = TRUE;
}
}
if($boolean==TRUE){
$this->updateCart($Description);
}
你可以这么做
if(in_array( $Description, array_column($data['cartArray'],'Description'))){
$this->updateCart($Description);
}
您可以使用此代码(实体模型)对其进行测试
输出
found
在这里测试一下
我认为数组中的
是不言而喻的,但这里有一个非常有用且经常被忽略的地方。我尝试了返回、死亡和退出。
PHP在遇到任何一个问题后都无法执行代码,你的问题就在这些问题之前。PHP只是不做它想做的事情,而是做你告诉它的事情。你的foreach中的逻辑是al所以有缺陷,或者更好,你可以在找到你的条件的第一个真值后打破它。还有一个小提示是,当检查常量时,最好将它们放在左边if(真==$boolean)
这会阻止赋值,因为您不能将true赋值给可以赋值的$boolean
,但是在这种情况下,如果($boolean),我只会赋值
这相当于您正在检查的内容。这些都不能解决您的问题,但我想我会分享我的智慧。您也可以在记事本++中打开它,然后检查它的编码方式。我讨厌那些BOM内容
if(in_array( $Description, array_column($data['cartArray'],'Description'))){
$this->updateCart($Description);
}
$Description = 'foo';
$data = ['cartArray' => [
['Description' => 'foo'],
['Description' => 'bar'],
]
];
if(in_array( $Description, array_column($data['cartArray'],'Description'))){
echo "found";
}
found