web-dev-qa-db-ja.com

Laravel 4.2ブレード:空かどうかを確認

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 != ''){}を作成したくありません。

19
Marten

これを試して:

@if ($value !== '')
    {{ HTML::link($value,'some text') }}
@endif
14

@unlessディレクティブ この状況で読みやすくするため。

@unless ( empty($school->website) )
    <a href="{{ $school->website }}" target="_blank">{{ $school->website }}</a>
@endunless
14
Jeff Puckett
{{ ($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>" : '' }}
5
lieroes

PHP 7では、null合体演算子を使用できます。これは、@ m0z4rtの答えの省略形です。

{{ $variable ?? 'default' }}
4
Rajitha Bandara
{{ isset($variable) ? $variable : 'default' }}
1
m0z4rt

なぜ$variable->isEmpty()について誰も話さなかったのだろうか?次のように使用できます。

@if($var->isEmpty())
    Do this  
@else
    Do that  
@endif
0
Rahul Gurung