You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中@if多值判断语法问题求助

解决Laravel Blade多类型匹配的@if判断问题

嗨,我来帮你搞定这个Blade模板的条件判断问题~你当前的写法之所以只能匹配单个类型,是因为PHP的==比较运算符只能和单个值做比较,你用逗号分隔多个值的写法不符合语法规范,后面的'news'和'interview'实际上会被PHP忽略,自然没法同时匹配啦。

给你两种靠谱的解决办法:

方法一:用in_array()函数(推荐,简洁易维护)

这是处理多值匹配最常用的方式,直接检查字段值是否在目标数组里:

@if(in_array($article->type, ['analytic', 'news', 'interview']))
    SHOW THIS
@endif

原理很简单:in_array()会验证第一个参数($article->type)是否存在于第二个参数的数组中,只要匹配其中任意一个值,就会返回true,从而显示你想要的内容。

方法二:用逻辑或运算符||

如果值的数量不多,也可以用多个==判断通过||连接,逻辑上是一样的:

@if($article->type == 'analytic' || $article->type == 'news' || $article->type == 'interview')
    SHOW THIS
@endif

这里每个条件单独判断,只要其中一个条件成立,整个表达式就会为true。

小提示

如果这些类型是项目里固定的业务值,建议把它们放到配置文件里(比如config/app.php),后续修改类型时不用改动视图代码:

// config/app.php
'allowed_article_types' => ['analytic', 'news', 'interview'],

然后在视图里这样用:

@if(in_array($article->type, config('app.allowed_article_types')))
    SHOW THIS
@endif

内容的提问来源于stack exchange,提问作者Bochorishvili Nikusha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 06:07:41