0

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

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

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

好的,它很酷,但在视觉上,它很差,例如,我会制作状态,“更用户友好”,显示一个icon,具有不同的classclor,具体取决于状态值。

问题是,我应该在哪里做这个?在哪个文件中?我可以在模型中做到这一点,但这显然不是保持 MVC 逻辑和保持代码简洁的好方法。

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

如果您有任何想法、建议或其他逻辑,我“知道”!

4

1 回答 1

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])

应用程序/views/partials/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])

应用程序/views/partials/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>'s 类依赖于你的状态,同时保持里面的内容<td>依赖于你的partials.status视图等等。

另一种方法也可以是在上面的示例中@include嵌套另一个。@if

于 2014-06-19T12:48:48.467 回答