こんにちは、私はブレードのバージョンを使用して変数がすでに設定されているかどうかをチェックしようとしています。しかし、生のPHPは動作しているが、ブレードのバージョンは動作していない。何か助けはありますか?
コントローラを使用しています。
public function viewRegistrationForm()
{
$usersType = UsersType::all();
return View::make('search')->with('usersType',$usersType);
}
ビューを表示します。
{{ $usersType or '' }}
というエラーが表示されます。
Undefined variable: usersType (View: C:\xampphtdocs﹑﹑View.blade.php)
{{ $usersType or '' }}
は問題なく動作しています。ここで問題なのは、あなたのforeachループです。
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
これを @if()
に記述することをお勧めします。
@if(isset($usersType))
@foreach( $usersType as $type )
<input type="checkbox" class='default-checkbox'> <span>{{ $type->type }}</span>
@endforeach
@endif
また、@forelseを使うこともできます。シンプルで簡単です。
@forelse ($users as $user)
<li>{{ $user->name }}</li>
@empty
<p>No users</p>
@endforelse
optional()
ヘルパーを使用してこれを解決しました。 ここで例を使用すると、次のようになります。
{{optional($ usersType)}}
。
より複雑な例は、私のように、nullオブジェクトのプロパティにアクセスしようとしていると言う場合です(つまり、. $ users-> type
) old()
ヘルパーを使用しているビュー。
value = "{{old('type '、optional($ users)-> type}}"
。
オブジェクトのプロパティにアクセスしようとする場合、ブラケットはオブジェクト変数全体ではなくオブジェクト変数を回ることに注意してください。
phpの新しい更新後。
// if it does not exist.
$username = $_GET['user'] ?? 'nobody';
// This is equivalent to:
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
ref:https://laravel-news.com/blade-templates-null-coalesce-operatorを確認してください。