web-dev-qa-db-fra.com

Laravel Une variable transmettant une lame avec une chaîne à travers @include provoque une erreur

Dans Laravel 5.0.27, j'inclus une vue avec une variable et le code suivant:

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

et j'obtiens l'erreur suivante ...

Syntaxe FatalErrorException ... erreur, inattendue ','

Je précise que l'erreur provient uniquement de "(" dans la chaîne de variable "mainContent", et lorsque je supprime le "(" l'erreur disparaît et tout fonctionne correctement. Je ne trouve rien dans la documentation à ce sujet ou toutes les erreurs similaires répertoriées en ligne.

Est-ce que quelqu'un sait si c'est le comportement attendu ou s'il s'agit d'un bogue qui devrait être signalé?

Merci beaucoup pour votre temps!

50
joeyfb

Ce n'est pas un bug mais une limitation de la syntaxe de la lame due à regex. La solution venait de github :

Le problème est d'utiliser plusieurs lignes. Vous ne pouvez utiliser qu'une seule ligne pour [passer des variables] dans Blade, car la syntaxe est limitée [par des expressions régulières]

Essayez le code ci-dessous et vous devriez être prêt à partir:

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

Vous pouvez passer un tableau $ data

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

utilisation $data['mainTitle'] etc dans layouts.article

8
varun sharma