2014-08-31 64 views
0

我试图渲染它čćžšđ字母的观点,但它的失败,给我这个错误:Laravel查看::渲染()给出了错误

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); 

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

如何解决这个问题?

回答

0

对于将来的通知,我用mb_substr($tag->tag, 0, 1)更换$tag->tag[0]解决了这个问题。这个命令从字符串中提取utf-8字符,而我以前的方法没有正确编码UTF-8字符。

更多的信息:Get first character of UTF-8 string

1

试试这个:

json_encode($output, JSON_UNESCAPED_UNICODE) 
+0

不工作,我得到同样的错误,像以前一样 – Alen 2014-09-01 09:53:26