Laravel 4逻辑组织返回包装文本

时间:2014-06-19 09:45:30

标签: laravel laravel-blade textwrapping displayobject

我想知道在将其显示在刀片​​之前我可以在哪里包装信息。

事实上,在我看来,我通常使用类似的东西。

<td>{{ $computer->component->id }}</td>
<td>{{ $computer->component->price }}</td>
<td>{{ $computer->component->status->name }}</td>

好吧,它看起来很酷但是看起来很糟糕,而且我会做出例如状态,#34;更加用户友好&#34;,显示图标,具有不同的 clor ,具体取决于状态值。

问题是,我应该在哪里这样做?在哪个档案?我可以在模型中执行此操作,但它显然不是保持MVC逻辑性并保持干净代码的好方法。

我尝试使用presenter类,但我无法在$ computer视图中调用Component Presenter,我想在其他组件中显示此状态设计。

如果您有任何想法,建议和其他逻辑,我会意识到&#34; !

1 个答案:

答案 0 :(得分:1)

我会为你提出另一个想法,使用@include,这是一种仅限刀片的方法。

应用程序/视图/ computer.blade.php

<td>{{ $computer->component->id }}</td>
<td>{{ $computer->component->price }}</td>
@include('partials.status', ['status' => $computer->component->status->code, 'label' => $computer->component->status->name])

应用程序/视图/分音/ status.blade.php:

<td>
    <div class="{{ $status }}">
         {{ $label }}
    </div>
</td>

或者在这里,让您的显示更灵活。我希望这对你正在努力实现的目标来说并不太麻烦。

应用程序/视图/ computer.blade.php

<td>{{ $computer->component->id }}</td>
<td>{{ $computer->component->price }}</td>
@include('partials.status', ['status' => $computer->component->status->name])

应用程序/视图/分音/ status.blade.php:

<td>
    @if($status == 'in stock')
        <img src="icon-in-stock.png" /> In stock
    @if($status == 'out of order')
        <img src="icon-out-of-order.png" /> Out of order
        <a href="/notify-me">Tell me when items are available!</a>
    @endif
</td>

或者你可以混合搭配上面两个例子,例如:使<td>的课程取决于您的状态,同时保持<td>内的内容取决于您的partials.status视图等。

另一种方法是在上面的例子中@include内有另一个嵌套@if