为刀片文件中的变量赋值
Posted
技术标签:
【中文标题】为刀片文件中的变量赋值【英文标题】:assign a value to a variable in blade file 【发布时间】:2018-05-25 00:17:27 【问题描述】:我想根据条件为 laravel 刀片文件中的变量赋值。
<?php $status=''; ?>
@if($user_role=='2')
<?php $status='1'; ?>
@elseif($user_role=='3')
<?php $status='2'; ?>
@elseif($user_role=='4')
<?php $status='3'; ?>
但是 status 什么都不返回。如何在 laravel 5.3 刀片文件中为变量赋值
【问题讨论】:
Laravel's Blade: how can I set variables in a template?的可能重复 最好在控制器而不是刀片(视图)中执行此逻辑 @ThomasMoors 可能是 OP 想根据条件显示一些文本! @HirenGohel SOC 先在控制器中执行逻辑并将数据传递给视图仍然会更好 也许$user_role
不是 2、3 或 4
【参考方案1】:
@if($user_role=='2')
@php $status='1'; @endphp
@endif
@if($user_role=='3')
@php $status='2'; @endphp
@endif
@if($user_role=='4')
@php $status='3'; @endphp
@endif
你可以通过添加 echo 来检查值
@if($user_role=='4')
@php echo $status='3'; @endphp
@endif
【讨论】:
【参考方案2】:switch 语句会更好
@switch($user_role)
@case(1)
@php $status = 1;@endphp
or <h1>Status is 1</h1>
@break
@case(2)
Second case...
@break
@default
Default case...
@php $status = 5;@endphp
@endswitch
但你的大部分逻辑(如果不是全部)都应该在控制器中完成
https://laravel.com/docs/5.5/blade#switch-statements
如果您的 laravel 版本中没有 @switch 可用,您可以随时使用
@php
switch($user_role)
case 1:
$status = 1;
break;
case 2:
$status = 2;
break;
default:
$status = 5;
@endphp
【讨论】:
以上是关于为刀片文件中的变量赋值的主要内容,如果未能解决你的问题,请参考以下文章