是否可以比较 Session::get('key') 值并使用 laravel 内联 if else 语句进行比较?
Is it possible to compare Session::get('key') value and compare it using laravel inline if else statement?
我想做的是过滤单选按钮。当用户根据特定年份应用过滤器时,它会进入控制器以根据该年份过滤数据结果,然后 return 返回到具有新值的视图。但是页面刷新时,反映的是按年份过滤的值,只是单选按钮没有勾选,默认全部 单选按钮已选中。
我所做的是根据单击哪个单选按钮的值将单选按钮的 ID 存储在控制器的会话中。如果单选按钮的 ID 与存储在会话中的 ID 匹配,则应检查该单选按钮。
Index.blade.php
<label>
<input type="radio" name="year" id="tab" value="_all" class="flat-red filter" checked="checked"> All
</label>
@foreach ($years as $year)
<label>
<input type="radio" name="year" id="id{{$year->year}}" value="{{ $year->year }}" class="flat-red filter" checked = {{ Session::get('radio') == "id{{$year->year}}" ? 'checked' : 'false' }}> {{$year->year}}
</label>
@endforeach
<button type="submit" class="btn btn-primary btn-sm pull-right">Apply Filter</button>
StatisticsController.php
session(['radio' => 'id'.request('year')]);
return view('statistics.index', $counts, compact('years'));
我得到的错误
syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
我试过的方法,
1.用JS查看哪个单选按钮被点击并保存到本地session
我做错了什么或错过了什么?
一种解决方案是读取控制器中的 session 变量并将其注入到模板中。
不要在模板中放入更多逻辑,这不是模板引擎的用途 - 更好地解耦此类逻辑。这有助于您保持代码的可维护性。 blade 模板不需要了解 session
的任何信息
{{ }}
内的所有内容都是 PHP。 {{ }}
被 Blade 编译器替换为如下内容:
<?php echo e(...); ?>
所以基本上只是在 {{ }}
:
之间使用常规 PHP 语法
{{ Session::get('radio') == "id{$year->year}" ? 'checked' : 'false' }}
在 {{ }}
中包含 {{ }}
会破坏 echo 语句的编译。
我想做的是过滤单选按钮。当用户根据特定年份应用过滤器时,它会进入控制器以根据该年份过滤数据结果,然后 return 返回到具有新值的视图。但是页面刷新时,反映的是按年份过滤的值,只是单选按钮没有勾选,默认全部 单选按钮已选中。
我所做的是根据单击哪个单选按钮的值将单选按钮的 ID 存储在控制器的会话中。如果单选按钮的 ID 与存储在会话中的 ID 匹配,则应检查该单选按钮。
Index.blade.php
<label>
<input type="radio" name="year" id="tab" value="_all" class="flat-red filter" checked="checked"> All
</label>
@foreach ($years as $year)
<label>
<input type="radio" name="year" id="id{{$year->year}}" value="{{ $year->year }}" class="flat-red filter" checked = {{ Session::get('radio') == "id{{$year->year}}" ? 'checked' : 'false' }}> {{$year->year}}
</label>
@endforeach
<button type="submit" class="btn btn-primary btn-sm pull-right">Apply Filter</button>
StatisticsController.php
session(['radio' => 'id'.request('year')]);
return view('statistics.index', $counts, compact('years'));
我得到的错误
syntax error, unexpected ')', expecting :: (T_PAAMAYIM_NEKUDOTAYIM)
我试过的方法, 1.用JS查看哪个单选按钮被点击并保存到本地session
我做错了什么或错过了什么?
一种解决方案是读取控制器中的 session 变量并将其注入到模板中。
不要在模板中放入更多逻辑,这不是模板引擎的用途 - 更好地解耦此类逻辑。这有助于您保持代码的可维护性。 blade 模板不需要了解 session
的任何信息{{ }}
内的所有内容都是 PHP。 {{ }}
被 Blade 编译器替换为如下内容:
<?php echo e(...); ?>
所以基本上只是在 {{ }}
:
{{ Session::get('radio') == "id{$year->year}" ? 'checked' : 'false' }}
在 {{ }}
中包含 {{ }}
会破坏 echo 语句的编译。