微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

刀片语句中的额外空格 Laravel 8

如何解决刀片语句中的额外空格 Laravel 8

问题是,它不仅仅是一个变量,而是带有 @if@isset@foreach 指令的语句。如果没有语法错误,我无法删除空格。所有这些空格都显示在输入字段中。

在描述字段中,我这样做了:

  1. 检查,如果 old('description') 存在。

  2. 如果是,显示它。

  3. 如果不存在,则检查变量 $post 是否存在(我将此表单用于存储和更新方法)。

  4. 如果是,显示它。

  5. 如果不是,则该字段保持为空。

     <div class="form-group">
     <label for="description">Description</label>
     <textarea id="description" name="description" rows="3">@if(old('description')){{ old('description') }}@else @isset ($post){{$post->description}}@endisset @endif</textarea>
    
     <div class="form-group">
     <label for="tags">Tags</label>
     <input type="text" name="tags" id="tags"
            value="@isset ($post,$tags)@foreach($post->tagged as $tagged){{$tagged->tag_name}},@endforeach @endisset">
    

我尝试了 hedronium/spaceless-blade 包,但它不适用于输入值。

解决方法

>@if"@isset 将被解析为字符串,因为 @ 只有在不与除空格、换行或制表符之外的其他字符连接在一起时才会被解析为语法。您可以在 {{}} 内不带 @ 的条件下执行。

我有一个使用 ternary operator and null coalescing operator 的更好的解决方案。

更改您的长代码

@if(old('description')){{ old('description') }}@else @isset ($post){{$post->description}}@endisset @endif

{{old('description') ?? isset($post)?$post->description:''}}

和改变

@isset ($post,$tags)@foreach($post->tagged as $tagged){{$tagged->tag_name}},@endforeach @endisset

{{isset($post) ? implode(',',$post->tagged->pluck('tag_name')->toArray() )):''}}

完整代码:

  <div class="form-group">
  <label for="description">Description</label>
  <textarea id="description" name="description" rows="3">{{old('description') ?? isset($post)?$post->description:''}}</textarea>
</div>


 <div class="form-group">
 <label for="tags">Tags</label>
 <input type="text" name="tags" id="tags"
           value="{{isset($post) ? implode(',$post->tagged->pluck('tag_name')->toArray() )):''}}">
</div>
,

我使用指令 @php 解决了我的问题。

<textarea id="description" name="description" rows="3">@php
        if(old('description')) {
            echo old('description');
        } elseif (isset($post)){
            echo $post->description;
        } 
    @endphp</textarea>

不再有多余的空格。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。