【问题标题】:Laravel View::render() gives errorLaravel View::render() 给出错误
【发布时间】:2014-08-31 21:45:18
【问题描述】:

我正在尝试渲染一个包含 čćžšđ 字母的视图,但它失败了并给了我这个错误:

The Response content must be a string or object implementing __toString(), \"boolean\" given."

我提取了一个部分,当我使用正常方式(使用@include)加载这个部分时,一切正常。 但我需要“加载更多”功能,所以我使用这个部分来为我呈现 html,我只使用 jQuery 将它附加到 DOM。 这是部分:

<?php $flag = true; ?>
@foreach($tags as $tag)
    @if(empty($tag->tag)) <?php continue; ?> @endif
    @if($flag == true)
        <?php $temp = $tag->tag[0]; ?>
            <br><label class="firstLetterLabel">{{ strtoupper($temp) }}</label><br><hr><br>
        <?php $flag = false; ?>
    @endif
    @if($temp != $tag->tag[0])
        <br><label class="firstLetterLabel">{{ strtoupper($tag->tag[0]) }}</label><br><hr><br>
    @endif
    <div class="singleTag">
        <a href="/tag/{{ $tag->id }}">{{ $tag->tag }}</a>
    </div>
    <?php $temp = $tag->tag[0]; ?>
@endforeach

这是我在“加载更多”功能中使用它的方式:

$tags = Tag::orderBy("tag")->take(Config::get("settings.num_tags_per_page"))->skip(($page-1)*Config::get("settings.num_tags_per_page"))->get();

    $data = array();
    $data['data'] = View::make("discover.partials.tags")->with("tags", $tags)->render();


    if(count($tags)%Config::get("settings.num_tags_per_page") == 0 && count($tags) > 0)
        $data['msg'] = 'ok';
    else
        $data['msg'] = 'stop';

    return json_encode($data);

这部分读取标签并按字母顺序对它们进行排序,它会提取每个标签的第一个字母,因为我在其他地方需要那个字母。 当这个部分找到这些字母之一čćžšđ 然后它给了我上面的错误。

如何解决?

【问题讨论】:

    标签: laravel laravel-4


    【解决方案1】:

    试试这个:

    json_encode($output, JSON_UNESCAPED_UNICODE)
    

    【讨论】:

      【解决方案2】:

      为了以后的通知,我通过将$tag-&gt;tag[0] 替换为mb_substr($tag-&gt;tag, 0, 1) 解决了这个问题。此命令从字符串中提取 utf-8 字符,而我之前的方法没有正确编码 utf-8 字符。

      更多信息在这里:Get first character of UTF-8 string

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-04
        • 2014-12-19
        • 2021-08-03
        • 2015-05-12
        • 1970-01-01
        • 2019-03-09
        • 2014-04-20
        相关资源
        最近更新 更多