Form::label 中未显示值“0”

Value '0' not shown in Form::label

所以我一直在尝试以多种不同的方式在这个标签中放置一个零。

这是我想要做的。

这个标签应该保存锚点的值。这个锚决定了他们的标签应该有多重。 (使排序更容易。)

现在所有标签的默认值为零。所以这就是标签必须包含的内容。 但是,每当我输入 0 作为值时,它都会显示标签的名称。

以下是我尝试过的方法:

{{Form::label($tag->value . '_anchor', '0')}}
{{Form::label($tag->value . '_anchor', 0)}}
{{Form::label($tag->value . '_anchor', "0")}}

甚至试图愚弄它:

{{Form::label($tag->value . '_anchor', function(){
                            return 0;})}}

这是请求的原始代码:

<div class="form-group">
        @if(count($tags) > 0)
            <div class="col-md-2">
                @foreach($tags as $tag)
                    <div class="tags" style="float: none;">
                        {{Form::label($tag->value, $tag->value)}}
                        {{Form::checkbox($tag->value, $tag->id, false)}}
                        <div>
                            <span class="glyphicon glyphicon-play reverse"></span>
                            {{Form::label($tag->value . '-anchor', 1)}}
                            {{Form::hidden($tag->value . '_anchor', 0)}}
                            </span><span class="glyphicon glyphicon-play"></span>
                        </div>

                    </div>
                @endforeach
            </div>
        @endif

    </div>

知道如何在我的标签中获得零值吗?任何其他数字都可以正常显示。

这是我得到的和我期望的图片。正如 1 所见,它工作正常。

希望大家帮帮忙。如果您需要更多代码或信息,请询问。

Laravel 运行标签名称 through formatLabel:

protected function formatLabel($name, $value)
{
    return $value ?: ucwords(str_replace('_', ' ', $name));
}

因为此检查使用非严格比较(== 而不是 ===),$value 为零被视为 false(false-y!)值,因此它使用标签调用的 first 参数而不是 second.

(Laravel 这样做的目的是让你可以完全省略第二个参数,它只会使用字段的名称来最好地猜测标签应该是什么说。)

你最简单的选择就是自己输出 <label for="foo_anchor">0</label> raw HTML。