请问这样的代码可以怎么优化,除了前后端分离,不是来黑 PHP 的

2018-03-06 15:45:58 +08:00
 OMGZui

这是一个列表页面,也是搜索页面,看的真的难受,这还只是一处条件,可以怎么优化呢?

            <div class="mb10">
                <a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>0,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 0) class="label label-success" @endif>全部</a>&nbsp;&nbsp;
                <a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>7,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 7) class="label label-success" @endif>旅游</a>&nbsp;&nbsp;
                <a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>4,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 4) class="label label-success" @endif>旅游</a>&nbsp;&nbsp;
                <a href="{{route('product.lines.index',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>5,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 5) class="label label-success" @endif>旅游</a>&nbsp;&nbsp;
                <a href="{{route('product.lines.index',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>8,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 8) class="label label-success" @endif>旅游</a>&nbsp;&nbsp;
                <a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>11,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
                   @if($class_theme_id == 11) class="label label-success" @endif>旅游</a>&nbsp;&nbsp;
            </div>


2189 次点击
所在节点    PHP
5 条回复
2ME
2018-03-06 15:53:44 +08:00
zjsxwc
2018-03-06 16:08:58 +08:00
OMGZui
2018-03-06 16:29:23 +08:00
@2ME 感谢,我去研究下
OMGZui
2018-03-06 16:31:00 +08:00
@zjsxwc 模板是 Laravel 自带的 blade
zjsxwc
2018-03-07 09:08:46 +08:00
@OMGZui

看了下文档,blade 也太弱了,好像不支持 macro, 那么试试 @php 里定义的函数能不能用在 blade 里

```
@php
function is_active($class_theme_id, $active_theme_id) {
if ($class_theme_id == $active_theme_id) {
return 'class="label label-success"';
}
return '';
}
@endphp

<div class="mb10">
<a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>0,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
{{ is_active($class_theme_id, 0) }} >全部</a>&nbsp;&nbsp;


<a href="{{route('#',['class_type_id'=>$class_type_id,'class_region_id'=>$class_region_id,'class_theme_id'=>7,'sitecode'=>$sitecode,'deleted'=>$deleted])}}"
{{ is_active($class_theme_id, 7) }} >旅游</a>&nbsp;&nbsp;
</div>
```

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/435374

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX