Блейд 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", и когда я удаляю "(" ошибка исчезает, и все работает нормально. Я не могу найти ничего в документации по этому или любым подобным ошибкам, перечисленным в Интернете.
Кто-нибудь знает, является ли это ожидаемым поведением или это ошибка, о которой следует сообщить?
Большое спасибо за ваше время!
2 answers
Это не ошибка, а ограничение синтаксиса блейда из-за регулярного выражения. Решение пришло из github:
Проблема заключается в использовании многострочного. Вы можете использовать только одну строку, чтобы [передавать переменные] в блейде, так как синтаксис ограничен [регулярными выражения]
Попробуйте использовать приведенный ниже код, и у вас все должно получиться:
@include('layouts.article', ['mainTitle' => "404, page not found", 'mainContent' => "sorry, but the requested page does not exist :("])
Вы можете передать массив данных $
<?php $data=[
'mainTitle' => "404, page not found",
'mainContent' => "sorry, but the requested page does not exist :("
] ?>
@include('layouts.article', $data)
Используйте
$data['mainTitle']
и т.д. вlayouts.article