【发布时间】:2020-01-14 12:25:03
【问题描述】:
我在 cakephp 中调用这个 php 类型,即“in_array”。基本上我正在检查两个字段在数组中是否可用。问题在于,通过这种方法,它应该通过检查字段是否在数组中来仅输出一条语句。结果就像跳过了数组检查并输出了两个不正确的语句。
这是我在 View.ctp 中的调用,
foreach($types as $type)
{
if(in_array(array($carId, $type->type_id), $types))
{
echo $this->Html->link(
'Remove',
['controller' => 'cars', 'action' => 'removeType'],
['class' => 'btn btn-success']
);
}else
{
echo $this->Html->link(
'Add',
['controller' => 'cars', 'action' => 'addType'],
['class' => 'btn btn-success']
);
}
这就是我调用数据库的方式:
$typesTable = TableRegistry::getTableLocator()->get("Types");
$types = $typesTable->find('all')->toArray();
$this->set('types', $types);
如果数据库中$carId等于$typesId,输出结果应该是一个按钮Remove,如果不等于Add按钮应该显示。
【问题讨论】:
-
if 和 else 分支不可能同时执行。如果您从两者都获得输出 - 那么您将不止一次使用不同的输入数据集运行此操作。
-
@04FS 我将编辑我的代码,因为它在 foreach 中,但结果仍然不像假设的那样
-
in_array() 似乎在工作3v4l.org/A58fF
-
@vivek_23 我刚刚编辑了我的代码以使其更清晰,抱歉
-
您是否想查看您的 $types 数组中是否同时存在
$carId和$type->type_id?您的$types数组实际上是否应该包含一个包含这两个变量的数组?或者您是否想找出这两个变量中的哪一个(如果有)在您的$types数组中?
标签: php cakephp cakephp-3.0