Laravel blade 使用三进制设置输入值 if

Laravel blade set value on input with ternary if

我有一个模板,如果输入是否设置了“value”属性,即使它是空的,它也会更改样式。

例如这个:

<input type="text" class="form-control" name="name" id="name" value="">

模板与此不同:

<input type="text" class="form-control" name="name" id="name">

出于这个原因,如果设置了值,我需要用三元检查。

我写了这段代码:

<input type="text" class="form-control" name="name" id="name" {{ (isset($category) ? ("value='".$category->name."'") : "") }}>

但是当我 运行 页面并设置了 $category 变量时,我在输入中发现了这样一个值:'Category

我检查了生成的代码,我可以找到这个:

<input type="text" class="form-control" name="name" id="name" value="'Category" a="" name&#039;="">

但数据库中的值为Category name

你能帮我找到问题吗?

您只需要这样做;

<input type="text" class="form-control" name="name" id="name" value="{{ isset($category) ? $category->name : '' }}" >

我认为在这种情况下不需要三元运算符,因为在 case 条件结果 false.

中你什么都不做

您可以只使用 @if:

@if (isset($category)) value="{{$category->name}}" @endif

此外,还有一个 @isset 指令,如果您这样做可能更合适:

@isset($category) value="{{$category->name}}" @endisset 

在您的输入中

<input type="text" class="form-control" name="name" id="name" @isset($category) value="{{$category->name}}" @endisset />

参考:Blade 指令 If Statements