2017-10-07 63 views
2

多个值我有以下代码排除从阵列

'delete' => function($url, $model) { 
         $url = Url::to(['category/delete/'.$model->info_category_id]); 
         return ($model->info_category_id !== 11)?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):''; 
        }, 

其是有关创建在后台某一类的删除功能。正如你在第三行看到的那样,它从delete函数中排除了类别ID号码11。除了类别ID号11我还想从数据库中添加类别ID号15,但是当我插入15时会导致错误,如下所示:($model->info_category_id !== 11, 15)

如果你能帮我将category_id数字15正确地插入代码,我将不胜感激。

在此先感谢。

回答

0

尝试以下操作:

return (!in_array($model->info_category_id,[11,15]))?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):''; 

你正在做的方式是PHP语法不正确。上面的示例使用in_array函数来确定$model->info_category_id的值是否与提供的数组内的任何值匹配。或者你可以这样尝试:

return ($model->info_category_id !== 11 && $model->info_category_id !== 15)?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):''; 

它只是单独检查值。

0

你不能做多重比较是这样的:

$a !== $b, $c 

但是,您可以像下面这样做:

$a !== $b || $a !== $c 

或者,你可以使用数组:

!in_array($a, [$b, $c]) 
+0

这永远是真的;将'||'改为'&&'。 –

0

您可以拥有一个包含要排除的ID的数组,然后将其包含在关闭范围内,并检查ID e阵列中的阵列与in_array()

$excluded = [11, 15]; 
'delete' => function($url, $model) use ($excluded) { 
    $url = Url::to(['category/delete/'.$model->info_category_id]); 
    return (!in_array($model->info_category_id, $excluded))?Html::a('<i class="icon-trash"></i>', $url, ['class'=>'black-txt tips del-confirm-subitems']):''; 
},