2016-10-03 4 views
2

Ich habe ein Problem mit Werten mit '@' Zeichen in Laravel Form auswählen. Es scheint, dass alle Zeichenfolgen mit '@' in Code umgewandelt werden. Aber das passiert nur auf dem Server (welcher ein CentOS Server). aber funktioniert auf meinem lokalen Rechner richtig.Laravel Form Builder String mit '@' in einen Code umgewandelt werden

Das Bild unten ist wie es sein sollte und arbeitet an meinem lokalen.

enter image description here

Dann ist dies, wie es in CentOS-Server ist

enter image description here

Wie ich dies behoben haben kann? Ist es in der Einrichtung des Servers oder ich muss einen Haken dafür haben? Ich habe versucht, ihren Werten einen hohen Stellenwert zu geben, funktioniert aber immer noch so. Nicht wirklich sicher, was es in CentOS nicht funktioniert. Danke für deine Antworten.

So wurde das Json-Objekt in einer Konfigurationsdatei formuliert.

'group'=>[ 
      'type'=>'choice', 
      'optional'=>[ 
       'label' => 'Group', 
       'choices'=>function(){ 
        return Modules\Group\Entities\Group::all()->lists('name','id')->toArray(); 
       }, 
       // 'multiple' => true, 
       'attr' => ['multiple' => 'multiple', 'class' =>'multiselect-checkbox'] 
      ] 
     ], 

Und das ist die Ansicht, wie sie gerendert werden. Es ist eine PHP-Datei, keine Blade-Datei.

<?= Form::select($name, (array)$emptyVal + $options['choices'], $options['selected'], $options['attr']) ?> 
+1

Tun Sie einfach '{{'@'}}'. Das ist es. Es wird als String-Literal behandelt. – Andrew

+0

Wie rendern Sie Ihre Formularfelder in Ihrer Ansicht? –

+0

Der Wert stammt aus einer Datenbank. Wie kann ich dem entkommen? – banri16

Antwort

2

Sie verwenden den falschen Tag <?= ?> in Klingen Verwendung Klammern anstelle {!! !!} oder {{ }} alle auf Ihrer Strategie hängt, schlage ich Ihnen am documentation zu suchen.

Der Code sollte so aussehen:

{!! Form::select($name, (array)$emptyVal + $options['choices'], 
         $options['selected'], $options['attr']) !!} 

standardmäßig Klinge {{}} Anweisungen werden automatisch gesendet durch PHP htmlentities funktionieren XSS-Angriffe zu verhindern.

Bitte überprüfen Sie documentation.

Thx @ Jonathon bewusst für mich {!! !!} Ich war zu schnell auf die Tasten.

+0

Sollte es nicht '{!! !!} 'Syntax? Sie würden nicht 'htmlentities' auf irgendeinem HTML Code laufen lassen, oder es würde' <', '> 'Zeichen etc. kodieren. Ich weiß, was Sie gesetzt haben, funktioniert zwar, nicht sicher warum, aber ich bin ziemlich sicher, dass es' sein sollte { !! !!} ' – Jonathon

+0

@Jonathon btw das Problem war, dass seine CentOS aus irgendeinem Grund das @ -Zeichen als Code kompilierte, so hatte er zur gleichen Zeit einige Probleme mit seiner Klinge, ich habe versprochen, Laters zu sehen, aber unabhängig werde ich hinzufügen Ihr Update aswell –

+0

@ Jonathon würden Sie diesem Update zustimmen? –

Verwandte Themen