2014-09-30 4 views
0

Я могу разобрать HTML, который использует переменные шаблона лезвие через следующий код:клинка :: compileString() и встроенные переменные

$generated = Blade::compileString($string); 

    ob_start(); 

    try 
    { 
     eval($generated); 
    } 

    catch (\Exception $e) 
    { 
     ob_get_clean(); throw $e; 
    } 

    $content = ob_get_clean(); 

    return $content; 

И это прекрасно работает до тех пор, пока я не использовать переменные лезвия в , Который при анализе дает мне неопределенную переменную ошибку. Как я могу убедиться, что переменные лезвия доступны в моем настраиваемом методе парсинга?

+0

Чего вы хотите достичь? Почему вы запускаете 'eval' на' $ generated'? –

+0

@ MarcinNabiałek eval запускает код '$ generated', а затем возвращает синтаксическую строку. но если исходная строка содержит переменные, она говорит неопределенную переменную – xmaestro

+0

Возможный дубликат [Есть ли все равно, чтобы скомпилировать шаблон клипа?] (http://stackoverflow.com/questions/16891398/is-there-anyway-around- для компиляции лезвий-шаблона, как-это) –

ответ

0

Оказывается, я не передавал массив аргументов методу, который анализирует структуру Blade. Мое предположение заключалось в том, что метод Mail::send заботится о том, чтобы сделать переменные доступными, которые он принимает в качестве второго параметра. Мне также пришлось extract($args, EXTR_SKIP).

$generated = Blade::compileString($string); 

ob_start(); extract($args, EXTR_SKIP) 

try 
{ 
    eval($generated); 
} 
catch (\Exception $e) 
{ 
    ob_get_clean(); throw $e; 
} 

$content = ob_get_clean(); 

return $content;