2014-08-31 104 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