2016-09-02 2 views
1

私はヘッダーセクションのスタイルシート参照内にブレードエコーを使用しています。これは、サイトのスキン用のCSSを指定するためのものです。Laravel - ネストされたブレードのエコー

元の行は次のようになります。私は、ユーザーあたりの皮膚の設定をつかみ、ユーザーが自分の肌のように望んでいるものを変更するには、その行にそれを挿入したいのです

<link href="{{ asset("/dist/css/skins/skin-default.min.css"}}" rel="stylesheet" type="text/css\" /> 

。ビューのサービスプロバイダから変数に設定を引き出しました。

$view->with('visualSkin', Auth::user()->visualSkin); 

このようにして、すべてのビューがレンダリングされるときに$ visualSkinが設定されます。

これを上記のアセットhrefに挿入するにはどうすればいいですか?ユーザーが何も設定されていない場合は、デフォルトの設定にしますか?

私は、変数を呼び出すか、実行して、デフォルトを設定することができます。しかし、どのように私は私の資産のhrefでそのセクションをインライン化することができます

{{ $visualSkin or "skin-default" }} 

を?

<link href="{{ asset("/dist/css/skins/{{ $visualSkin or "skin-red-trim" }}.min.css"}}" rel="stylesheet" type="text/css\" /> 

は、私はまた、いくつかのPHPの策略を試してみたが、PHPのエコーに挿入する際には、ブレードのフォーマットなので、それがブレード法によってレンダリングされません。このような 何かが動作しません。

ブレードエコーをネストできますか?
エスケープ文字がありませんか?

答えて

4

ネストする必要はありません。ブレードタグの内部では、PHPが実行されているので、文字列を自然に連結することができます。

<link href="{{ asset("/dist/css/skins/" . $visualSkin or "skin-red-trim" . ".min.css")}}" rel="stylesheet" type="text/css\" /> 

asset(機能を閉じるために)がありませんでした注意してください。 echo 'something'

ですから、エコーで何かできること、ブレード・エコータグに行うことができます。{{ 'something' }}を使用して


はタイプと同じです。

+0

深夜の落ち着きの間違い。私は "+"の代わりに "。"を使用していました。連結のために。 )欠けているのは、これを投稿するときのコピー/ペーストの問題だけでした。それは今のコードにあります。エラーは$ visualSkinが定義されていないということです。私は "または"それを世話するだろうと思った?あるいは、私はissetで確認する必要がありますか? – hiddenicon

+0

私が間違っている場合は私を修正しますが、標準のPHPの '$ visualSkinまたは" skin-red-trim "はブール値に評価されません(この場合、true)?実際の値ではありませんか?私はあなたが '$ visualSkin?:skin-red-trim"をしたいと思います。 – maiorano84

+0

これは正しいはずです。 "or"は、それが単独であった場合、プレーン・ブレードのテンプレートになります。今はそれがブレードの内側にあるPHPだから、 "or"は期待どおりに動作しません。 – hiddenicon

関連する問題