【发布时间】:2015-03-16 14:06:56
【问题描述】:
客户可以选择两种类型的套餐:电话套餐或宽带和电话套餐。
当用户准备下订单时,它将显示一个包含包裹名称信息和成本的摘要视图。如果选择电话套餐或宽带和电话套餐,则某些摘要信息不需要显示。
有没有更好的方法来提高可读性和可维护性?例如
order-sidebar.blade.php
注意:这是代码块的小例子。在实际应用中它相当大,有很多if声明broadbandphone或phone
@if ($summary['service'] == "phone" || $summary['service'] == "broadbandphone")
<div class="x5">
<h4>Phone Line x <span class="summary-lines">{{$summary['lines']}}</span></h4>
<ul class="clearfix">
@if ($summary['service'] == "phone")
<li>
<p class="x5-details">
@if ($summary['line_type'] == "newline")
New Line(s)
@endif
@if ($summary['line_type'] == "switch")
Switch line(s)
@endif
</p>
</li>
@endif
@if ($summary['service'] == "phone" && $summary['lines'] > 1)
<li>
<p class="x5-details">{{$summary['linesWithMulitpleNumbers']}}</p>
</li>
@endif
<li>
<p class="x5-details">{{$summary['package']->name}}</p>
<p class="x5-price">£{{$summary['monthlyLinesCost']}}</p>
</li>
</ul>
</div>
@endif
或者我应该为摘要视图创建两个单独的文件,例如 order-sidebar-phone.blade.php 和 order-sidebar-broadbandphone.blade.php
所以应该是这样的:
@if ($summary['service'] == "phone")
@include('sections.order-sidebar-phone')
@end
@if ($summary['service'] == "broadbandphone")
@include('sections.order-sidebar-broadbandphone')
@end
【问题讨论】:
-
$summary是 Eloquent 模型吗? -
@lukasgeiter No.
$summary已通过generateSummary()方法在 OrderController.php 文件中声明。generateSummary()通过会话和数据库计算成本、总价等。 -
@lukasgeiter 你能建议我在刀片上改进什么
-
你能把完整的代码发布到像 pastebin 这样的网站上,这样我就可以看到这里发生了什么?
-
谢谢,但我实际上是指完整视图代码;)
标签: php laravel laravel-4 blade