2016-10-03 2 views
2

laravel form select에서 '@'기호가있는 값에 문제가 있습니다. '@'가있는 모든 문자열이 코드로 변환되고있는 것으로 보입니다. 하지만 이것은 서버 (centOS 서버)에서만 발생합니다. 내 로컬 컴퓨터에서 제대로 작동합니다.Laravel Form Builder '@'가 포함 된 문자열이 코드로 변환됩니다.

아래 그림은 내 지역에서 어떻게 작동하고 작동하는지입니다.

enter image description here

다음이는 내가이 고정 수있는 방법에 CentOS 서버

enter image description here

에 어떻게? 서버의 설정에 있습니까? 아니면이를 잡을 필요가 있습니까? 나는 그들의 가치에 htmlentities를 두려고 노력했지만 여전히 그런 식으로 작동합니다. CentOS에서 작동하지 않는 원인을 확실히 알지 못합니다. 답장을 보내 주셔서 감사합니다.

이것은 json 개체가 구성 파일에 공식화 된 방법입니다.

'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'] 
      ] 
     ], 

그리고 어떻게 렌더링되는지 보여줍니다. 그것은 블레이드 파일이 아닌 PHP 파일입니다.

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

간단히'{{ '@'}}'. 그게 전부 야. 문자열 리터럴로 취급됩니다. – Andrew

+0

보기에서 양식 필드를 렌더링하는 방법은 무엇입니까? –

+0

값이 데이터베이스에서옵니다. 어떻게 그걸 피할 ​​수 있니? – banri16

답변

2

당신은 모든 전략에 따라 달라집니다 대신 {!! !!} 또는 {{ }}에 블레이드를 사용 괄호로 잘못된 태그 <?= ?>를 사용하고, 난 당신이 documentation 보는 것이 좋습니다.

코드는 다음과 같이해야한다 : 기본적으로

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

는 블레이드 {{}} 문은 자동으로 전송됩니다 PHP의를 htmlentities는 XSS 공격을 방지하는 기능을 통해.

documentation을 확인하십시오.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 나를 알고 있습니다.

+0

'{!! !!}'구문? HTML 코드에서'htmlentities'를 실행하고 싶지 않거나 '<', '>'문자 등을 인코딩 할 것입니다. 당신이 넣은 것을 알고 있습니다. 왜 그런지는 모르겠지만,'{ !! !! !!}' – Jonathon

+0

@Jonathon이 문제는 그의 CentOS가 어떤 이유로 @ 기호를 코드로 컴파일했기 때문에 동시에 그의 블레이드에 몇 가지 문제가 있었고, 나는 laters를 보겠다고 약속했지만, 귀하의 업데이 트도 –

+0

@ 조나단이 업데이 트에 동의 하시겠습니까? –

관련 문제