在 laravel-blade 中生成动态 css 类

Generate dynamic css classes in laravel-blade

我处于经典场景中,我希望根据是否发生错误来更改 css 类。如下图,其中has-error要相应改变。

<div class="form-group has-error">

该项目位于 Laravel,目前我们主要想在 Blade 完成所有工作,我们提出了以下可行的解决方案,但看起来并不漂亮或不直观全部,所以问题是,是否有更优化的方法?

<div class="form-group
@if($errors->has('email'))
        has-error
@endif
">

我就是这么做的。你也可以这样做:

@if($errors->has('email'))
    <div class="form-group has-error"> 
       //You can also edit classes of other elements 
    </div>
@else
    <div class="form-group"></div>
@endif

尝试 if else 条件简写代码:

<form class="form-group {{ $errors->has('email') ? 'has-error' : '' }}">

这看起来很整洁。

甚至 Laravel 5.2 身份验证表单也是这样完成的。

您可以使用数组来存储 class 个名字

@php
$formGroupClasses = ['form-group'];

if ($errors->has('email')) {
  $formGroupClasses[] = 'has-error';
}
@endphp

然后将它们内爆以创建一个字符串

<form class="{{ implode(' ', $formGroupClasses) }}">