是否可以在控制器功能中使用刀片@if条件。这是我的PublicController函数
public function tourBanner($country){
@if( $country == 'country1')
background-image:url({{ asset('images/inside8.jpg') }});
@elseif ( $country == 'country2')
background-image:url({{ asset('images/inside7.jpg') }});
@elseif ( $country == 'country3')
background-image:url({{ asset('images/inside5.jpg') }});
@elseif ( $country == 'country4')
background-image:url({{ asset('images/inside6.jpg') }});
@else
background-image:url({{ asset('images/inside10.jpg') }});
@endif
return banner;
}
我收到此错误
Parse error: syntax error, unexpected 'if' (T_IF)
我犯了什么错误,或者如果在控制器中有if语句我们就不能使用刀片?
答案 0 :(得分:1)
Blade @if
的语法是在刀片视图中使用而不是在php文件中使用(如在您的案例控制器中)。您应该将Blade语法用于以扩展名 - filename。 blade.php 结尾的文件,并且在您的控制器中,请使用if语句的普通PHP语法。
请参阅Blade Docs
class Controller {
function a() {
if($country == 'country1') {
$asset_str = asset('images/inside8.jpg');
$banner = "background-image:url({$asset_str})";
}
....
return $banner;
}
}
希望这有帮助!
答案 1 :(得分:1)
代码中的错别字,代码是针对刀片文件而不是针对您的PHP文件。列出代码中的问题
从代码中删除@
@if .... @elsif
应该是
if .... elseif
更适合多个if ... else
,您可以使用switch case
您正在返回banner
但它应该是$banner
,而且您没有为$banner
变量分配任何值。所以你的代码就像是
if( $country == 'country1')
$banner = "background-image:url(".asset('images/inside8.jpg') .")";
.......
return $banner;
最好像{/ 1>一样使用switch case
switch($country)
{
case "country1":
$banner = "background-image:url(".asset('images/inside8.jpg') .")";
break;
case ..............
}
答案 2 :(得分:0)
在控制器中你应该这样写:
if ($country == 'country1') {
$a = 'background-image:url('.asset('images/inside8.jpg').')';
} elseif ....
但是如果你要用PHP构建HTML / CSS / JS,那就太糟糕了,不要这样做。
答案 3 :(得分:0)
请尝试以上情况切换机箱。
switch ($country) {
case "country1":
echo "background-image:url({{ asset('images/inside8.jpg') }})";
break;
}
它将返回完全相同的结果。
答案 4 :(得分:0)
您可以在控制器中构建样式,然后将结果数据从该Controller传递到视图,然后再渲染它。这个片段可能会给你一些见解:
{{1}}
然后;在视图中,这可能是做这样的事情:
{{1}}
答案 5 :(得分:0)
if else
条件。
答案 6 :(得分:0)
Blade是一个模板解析器,可以在后台将代码转换为PHP。 如果要在控制器中使用if语句,只需使用标准IF语句。
if($q == $a) {
#more code here
} else {
$other code here
}
如上所述,建议在使用if
的许多else语句时使用switch语句switch($q){
case "yes":
return $something;
break;
case "no":
return $somethingelse;
break;
case "maybe":
return $whoknows;
break;
}