2016-04-05 56 views
1

我想创建一个Blade指令,它将在我的表行上设置一个类,具体取决于传入的内容。问题是,当我调用它时,变量的值没有被传入 - 我在括号之间的文字字符串是。Laravel 5刀片自定义指令 - 麻烦传递变量

笔者认为:

@row($inspection->inspection_disposition) 

在指令:

Blade::directive('row', function($data) 
    { 
     var_dump($data); 
      . 
      . 
      . 
    } 

我垃圾堆里看到的是:

字符串(37)“($查阅─> inspection_disposition)“

我不应该看到该变量的值吗?这就是我想要的。我在这里错过了什么?

更多信息:

我需要使用该变量的值的指令,像这样:

if($data == "hello") 
{ 
    return something 
} 
elseif($data == "goodbye") 
{ 
    return something else 
} 

这是一个简单的例子,但我希望这将有助于说明我需要比较指令中变量的值,然后确定要执行的操作。也许我需要使用eval()?

+0

我一直在试图使用eval(),但我不认为这是正确的......为什么不做到这一点将值传递给指令? – Kenny

+0

我正在努力解决同样的问题,我只是无法将评估后的字符串或变量传递给我自定义的Blade指令。它的设计看起来像只在“返回”之后才被评估。虽然'eval()'总是危险的做法。 –

回答

1

刀片指令应该返回一个字符串,PHP将interprete,像这样:

Blade::directive('row', function($data) 
{ 
    return "<?php var_dump($data); ?>"; 
} 
+0

好的 - 我现在明白了。谢谢。我会更新我的问题,以更好地解释我在做什么。 – Kenny