2012-10-13 10 views
2

솔직히 내가 본 적이없는이 이상한 오류를 만졌을 때 나는이 멋진 저녁을 laravel로 사용했습니다. 일부 배열을 반복하고 뷰 파일의 일부 값을 출력하려고합니다.정의되지 않은 함수를 호출하십시오.

오류 :

Unhandled Exception 

Message: 

Error rendering view: [controller.index] 

Call to undefined function Â() 
Location: 

/web/storage/views/7b064aafcdba902ea2c593167b6df491 on line 4 

코드 :

@section('content') 
    <?php $i = 0; $current = 0 ?> 
    @foreach($data as $date => $episodes) 
     @if($i == 0 || ($i % 5 == 7 && $i == $current + 1)) 
      <tr> 
      <?php $current = $i; ?> 
     @endif 

     @foreach($data as $day) 
      <td> 
       @foreach($day as $episode) 
        {{ $episode->title }} 
       @endforeach 
      </td> 
     @endforeach 


     @if($i % 5 == 7 && $i == $current + 7) 
      <tr> 
      <?php $current = $i; ?> 
     @endif 
     <?php $i++; ?> 
    @endforeach 
@endsection 

그리고 컴파일 된 버전 :

<?php \Laravel\Section::start('content'); ?> 
    <?php $i = 0; $current = 0 ?> 
    <?php foreach($data as $date => $episodes): ?> 
     <?php if($i == 0 || ($i % 5 == 7 && $i == $current + 1)): ?> 
      <tr> 
      <?php $current = $i; ?> 
     <?php endif; ?> 

     <?php foreach($data as $day): ?> 
      <td> 
       <?php foreach($day as $episode): ?> 
        <?php echo $episode->title ; ?> 
       <?php endforeach; ?> 
      </td> 
     <?php endforeach; ?> 


     <?php if($i % 5 == 7 && $i == $current + 7): ?> 
      <tr> 
      <?php $current = $i; ?> 
     <?php endif; ?> 
     <?php $i++; ?> 
    <?php endforeach; ?> 
<?php \Laravel\Section::stop(); ?> 

그것은 쉬운 해결책이 될 수도 있지만 내가 어떤 좋은를 찾을 수 없습니다 Google 검색 결과 이 오류를 이해하도록 도와주세요! :)

+3

이 모양은 템플릿을 좋아합니다.이 방법으로 PHP 오류를 계속해서 억제 할 수 없습니다. – Baba

+0

복구 할 수있는 템플릿 파일 '7b064aafcdba902ea2c593167b6df491'을 보여 주어야합니다 (변환 된 PHP 코드가 포함되어 있음) . 그렇지 않으면 Laravel에 대한 버그 보고서를 제출하십시오.이 오류 메시지는 다소 쓸모가 없습니다. – mario

+0

인코딩 오류처럼 보이지만 컴파일 된 템플릿이 더 알려줄 것입니다 ... – Sven

답변

4

제거한 공간이 이고 공간이이 아닙니다. 실제로는 비 분리 영역 (U + 00A0)입니다. 공짜는 UTF-8로 인코딩되었지만 Latin-1로 잘못 해석 될 때 U + 0080과 U + 00BF 사이의 문자의 첫 번째 바이트로 나타나는 "Â"입니다. 어떤 이유로 PHP 컴파일러는 공백으로 간주하지 않으므로 일반 식별자로 사용하려고합니다.

+1

설명해 주셔서 감사합니다. 내 맥북에 alt + space를 입력해야합니다. 가장 이상한 점은 숨겨진 문자를 표시 할 때 Sublime Text 2 또는 Smultron에 표시되지 않았기 때문에 Coda 만 문제를 식별 할 수 있다는 것입니다. – Ms01

+1

@cubsink, 이봐, 고마워! 이건 내 이성을 끌고있어! 저는 ALT-SPACE를 절반 정도 타이핑하고 있다는 것을 전혀 모르고 있었으며 거의 ​​모든 프로그램에서 다른 것을 보지 못했습니다. 애플은 모든 개발자들에게 ALT-SPACE, 즉 "기능성"에 대해 정말로 격렬히 경고해야한다. 나는 나의 맥을 좋아하지만 때로는 일을하는 방식이 정말 싫다. 나는 그 의견 +1000을 줄 수 있었으면 좋겠다. – Donamite

+0

환영합니다. 그러나이 문제는 저를 위해 이그나시오가 해결했습니다 : P – Ms01

0

이것은 분명히 인코딩 문제였습니다. 어떻게 커져 왔는지는 큰 질문이었습니다 (UTF-8로만 작업했기 때문에).

Encoding problem

는 OR 문 (||) 후 공간 (^)을 제거하고 지금은 완벽하게 작동합니다.

관련 문제