2017-03-13 2 views
0

사용자가 텍스트 템플릿을 설정하고 중괄호 안에 자리 표시자를 사용하여 동적으로 대체해야하는 시나리오가 있습니다.문자열 안에 프로세스 블레이드 템플릿

예를 들어, 사용자 입력과 같은 문자열이 될 수 :

$userinput = '<p> Hello {{$name}} <\p>'; 
$userinput = '<p> Hi {{$name}} <\p>'; 

내가 HTML이 올바르게 렌더링됩니다 뷰 message.blade.php

@section('content') 
    {!! $userinput !!} 
@stop 

에서 확장 된 자리에이 입력을 표시 할 만하지만, 물론 {{$ name}}은 'Alice'로 대체되지 않습니다.

view('message')->with([ 
      'userinput' => $userinput, 
      'name' => 'Alice',]); 

내부 자리 표시자를 처리하는 간단한 방법이 있습니까? 블레이드 파일을 다시 해석 할 수 있습니까?

추신 : 나는 이스케이프 처리되지 않은 사용자 입력이 악하다고 알고 있습니다.

+0

시도해 봤어?() ?? 당신이 이름에 대한 값을 받았다고 확인 했습니까 ?? 또한 {{$ var}} 대신 {!! $ var !!} – RohitS

+0

'$ userinput = '

Hello'. $ name. '

';'그렇지 않습니까? 'Controller'에서'$ userinput'을 정의한다면,'blade' 약식을 사용할 필요가 없습니다. –

+0

답변

0

당신은 변경 될 수 있습니다 : $userinput = '<p> Hello {{$name}} <\p>'; 렌더링하기 전에 순서를 촉각 근합니다 $userinput = '<p> Hello {!! $name !!} <\p>';을 위해.

관련 문제