传给Blade的Laravel单词在没有解释的情况下变得大写

San*_*tes 5 php laravel

晚上好,我这里有一个相当奇怪的问题.关于正在发生的事情,我无法在线找到任何资源.

当我在控制器中使用以下内容在刀片模板中显示信息时:

$results = DB::table('datatest') -> get();

    if ($results != null) {

        return view('userview') -> with ('name', $results);

    }
Run Code Online (Sandbox Code Playgroud)

它将传递到我的刀片模板中的每个单词都大写.因此,假设我从我的数据库中传递了一个完整的段落,我段落中每个单词的每个首字母都变为大写.

这是我认为的一个剪切:

@foreach ($name as $name)

<tr>

<td>
{!!Form::label($name -> Author)!!}
</td>

<td>
{!!Form::label($name -> Title)!!}
</td>

<td>
{!!Form::label($name -> Year)!!}
</td>

<td>
{!!Form::label($name -> Abstracts)!!}
</td>

</tr>
@endforeach
Run Code Online (Sandbox Code Playgroud)

//

另一方面,当我选择使用以下内容将信息传递给我的其他模板时:

$data = DB::table('datatest')->where('id', $id)->first();

    $Author = $data -> Author;
    $Title = $data -> Title;
    $Year = $data -> Year;
    $Abstracts = $data -> Abstracts;

    $results = array('AUTHOR' => $Author, 'TITLE' => $Title, 'YEAR' => $Year, 'ABSTRACTS' => $Abstracts);

    return view('userview2') -> with ($results);
Run Code Online (Sandbox Code Playgroud)

这可以将数据传递到我的Blade模板中,该模板不会以任何方式改变单词的大小写:

</tr>
<td>{!!Form::label('title', $TITLE)!!}</td>
<td>{!!Form::label('author', $AUTHOR)!!}</td>
<td>{!!Form::label('year', $YEAR)!!}</td>
<td>{!!Form::label('abstracts', $ABSTRACTS)!!}</td>
</tr>
Run Code Online (Sandbox Code Playgroud)

有谁也遇到过这个问题?如果是这样,任何人都可以解释这背后的原因吗?

提前致谢!

Ale*_*nin 5

这就是Form::label有效的方式.根据文档,如果您想获得未触及的输出,您应该使用带有两个参数的标签,如下所示:

{!! Form::label('email', 'e-mail address') !!}
Run Code Online (Sandbox Code Playgroud)

哪个输出:

<label for="email">e-mail address</label>
Run Code Online (Sandbox Code Playgroud)

在你的第一个剪切Form::Label片中,你只传递一个参数并使这个字符串变得漂亮,所以:

{!! Form::label('my email'); !!}
Run Code Online (Sandbox Code Playgroud)

变成这样:

<label for="my email">My Email</label>
Run Code Online (Sandbox Code Playgroud)

这个怎么运作

标签制造商检查第二个参数,如果它不存在,或者它的null,建设者通过标签$nameformatLabel()它使用的方法ucwords(),以大写每个单词的第一个字符.

protected function formatLabel($name, $value)
    {
        return $value ?: ucwords(str_replace('_', ' ', $name));
    }
Run Code Online (Sandbox Code Playgroud)