2016-04-05 100 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