programing

Laravel 블레이드가 @include를 통해 문자열과 함께 변수를 전달하면 오류가 발생합니다.

bestcode 2022. 9. 8. 22:17
반응형

Laravel 블레이드가 @include를 통해 문자열과 함께 변수를 전달하면 오류가 발생합니다.

Larabel 5.0.27에는 변수와 다음 코드가 있는 뷰를 포함합니다.

@include('layouts.article', [
        'mainTitle' => "404, page not found",
        'mainContent' => "sorry, but the requested page does not exist :("
    ])

다음과 같은 오류가 발생합니다.

FatalErrorException 구문...오류, 예기치 않은 ' ,

mainContent 변수 문자열에 있는 "(")에서만 오류가 발생한다는 것을 좁혔고, ()을 제거하면 오류가 사라지고 모든 것이 정상적으로 실행됩니다.이 에러나 이와 유사한 에러에 관한 문서를 온라인으로 찾을 수 없습니다.

이것이 예상되는 동작인지, 보고해야 할 버그인지 알고 있는 사람이 있습니까?

시간 내주셔서 감사합니다!

이는 버그가 아니라 regex로 인한 블레이드 구문의 제한입니다.솔루션은 github에서 제공되었습니다.

복수 회선을 사용하는 것에 문제가 있다.구문이 [정규 표현에 의해] 제한되므로 Blade에서 [변수 전달]에 사용할 수 있는 것은 한 줄뿐입니다.

다음 코드를 사용해 보십시오.사용할 수 있습니다.

@include('layouts.article', ['mainTitle' => "404, page not found", 'mainContent' => "sorry, but the requested page does not exist :("])

5.8v에서는 포함된 뷰가 설명서에 따라 부모로부터 모든 변수를 상속합니다.

포함된 보기는 상위 보기에서 사용 가능한 모든 데이터를 상속하지만 포함된 보기에 추가 데이터 배열을 전달할 수도 있습니다.

@include('view.name', ['some' => 'data'])

$data 어레이를 전달할 수 있습니다.

<?php $data=[
        'mainTitle' => "404, page not found",
        'mainContent' => "sorry, but the requested page does not exist :("
    ]  ?>
@include('layouts.article', $data)

사용하다$data['mainTitle']layouts.article

언급URL : https://stackoverflow.com/questions/29739745/laravel-blade-passing-variable-with-string-through-include-causes-error

반응형