Блейд Laravel, передающий переменную со строкой через @include, вызывает ошибку


В Laravel 5.0.27 я включаю представление с переменной и следующим кодом:

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

И я получаю следующую ошибку...

Синтаксис исключения fatalerrorexception... ошибка, неожиданная ','

Я сузил, что ошибка возникает исключительно из "(" в строке переменной "MainContent", и когда я удаляю "(" ошибка исчезает, и все работает нормально. Я не могу найти ничего в документации по этому или любым подобным ошибкам, перечисленным в Интернете.

Кто-нибудь знает, является ли это ожидаемым поведением или это ошибка, о которой следует сообщить?

Большое спасибо за ваше время!

Author: joeyfb, 2015-04-20

2 answers

Это не ошибка, а ограничение синтаксиса блейда из-за регулярного выражения. Решение пришло из github:

Проблема заключается в использовании многострочного. Вы можете использовать только одну строку, чтобы [передавать переменные] в блейде, так как синтаксис ограничен [регулярными выражения]

Попробуйте использовать приведенный ниже код, и у вас все должно получиться:

@include('layouts.article', ['mainTitle' => "404, page not found", 'mainContent' => "sorry, but the requested page does not exist :("])
 58
Author: joeyfb, 2017-03-07 18:05:21

Вы можете передать массив данных $

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

Используйте $data['mainTitle'] и т.д. в layouts.article

 3
Author: varun sharma, 2018-09-07 08:47:49