Laravelできるブレード:
_{{ $variable or 'default' }}
_
これにより、変数が設定されているかどうかが確認されます。データベースからデータを取得しますが、これらの変数は常に設定されているため、このメソッドを使用することはできません。
私はこれを行うための簡単な「ブレード」機能を探しています:
_{{ ($variable != '' ? $variable : '') }}
_
これを行うためにこのピースまたはコードを使用するのは困難です。リンクまたは次のようなものでそれを行う方法はわかりません:
_<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
_
私は試した:
_{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
_
しかし、それは機能しません。そして、コードをできるだけ短くしたいです;)
誰かが私にそれを説明できますか?
[〜#〜] update [〜#〜]
Foreachを使用しないのは、データベースから単一のオブジェクト(1つの学校)を取得するためです。私はそれをコントローラーからビューに渡しました:
_ $school = School::find($id);
return View::make('school.show')->with('school', $school);
_
したがって、各$ variable($ school-> nameなど)の周りに@if($value != ''){}
を作成したくありません。
これを試して:
@if ($value !== '')
{{ HTML::link($value,'some text') }}
@endif
@unless
ディレクティブ この状況で読みやすくするため。
@unless ( empty($school->website) )
<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
@endunless
{{ ($school->website != '' ? '<a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>' : '') }}
への変更
{{ ($school->website != '') ? '<a href="' . $school->website . '" target="_blank">' . $school->website . '</a>' : '' }}
または同じコード
{{ ($school->website != '') ? "<a href='$school->website' target='_blank'>$school->website</a>" : '' }}
PHP 7では、null合体演算子を使用できます。これは、@ m0z4rtの答えの省略形です。
{{ $variable ?? 'default' }}
{{ isset($variable) ? $variable : 'default' }}
なぜ$variable->isEmpty()
について誰も話さなかったのだろうか?次のように使用できます。
@if($var->isEmpty())
Do this
@else
Do that
@endif