2016-04-05 25 views
1

渡されるものに応じてテーブル行にクラスを設定するBladeディレクティブを作成しようとしています。問題は、変数を呼び出すときに変数渡されていません - 私がかっこの間にあるリテラル文字列です。私の見解ではLaravel 5 Bladeカスタムディレクティブ - 問題引き渡し変数

:ディレクティブで

@row($inspection->inspection_disposition) 

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

私がダンプに見ることである。

文字列(37)「($ inspection->検査領域) "

その変数の値は表示されませんか?それが私が望むものです。私はここで何が欠けていますか?

MORE INFO:

私はこのように、ディレクティブでその変数の値を使用する必要があります。

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

これは簡単な例ですが、うまくいけば、それは私が必要であることを説明するのに役立ちますディレクティブ内の変数の値を比較し、何をすべきかを決定します。おそらく、私はeval()を使う必要がありますか?

+0

私は(evalのを使用しようとしてきた)が、私はそうですとは思いません???????????? – Kenny

+0

私は同じ問題に苦しんでいます。評価された文字列または変数をカスタムBladeディレクティブに渡すことはできません。これは設計上、 'return'の後にのみ評価されるように見えます。しかし、 'eval()'は常に危険なアプローチです。 –

答えて

1

ブレードディレクティブは、PHPがinterpreteうという文字列を返す必要があり、このように:なぜしないのは...

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

オクラホマ - 私は今それを理解しています。ありがとうございました。私は何をしているのかをよりよく説明するために質問を更新します。 – Kenny