0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめてのアドベントカレンダーAdvent Calendar 2024

Day 17

ポートフォリオ作成時メモ part9 ~Bladeテンプレートと?? 演算子の活用~

Last updated at Posted at 2024-12-17

はじめに

こんにちは、未経験からエンジニア転職を目指しているものです。
オンラインスクールで本格的に学習して7ヶ月目に入りました。PHPとLaravelを学習しながらポートフォリオを作成中です。
ポートフォリオ作成手順や学びを中心に記録していこうと思います。今回は、LaravelのBladeテンプレートで使用できる「?? 演算子」の仕組みと、その活用方法について解説します。


概要

Laravel Sailを使った開発環境で、Bladeテンプレートを用いてデータの表示を行いました。
その際に役立ったのが「??(null合体演算子)」です。この演算子を利用することで、データが存在しない場合の代替表示を簡単に実現できます。

  • ?? 演算子の概要と仕組み
  • 実際のコード例での活用
  • 動作の詳細解説
  • 従来のif文との比較

経緯と問題点

活動場所データが存在しない場合の対応

開発中のポートフォリオで、ユーザーが活動場所の情報を登録していない場合でも、空白のまま表示されるのではなく、代替テキスト(例:「データなし」)を表示させたいと考えました。

しかし、登録データがない場合にエラーが発生したり、適切な表示がされないことがあり、以下の方法を採用しました:

  • ?? 演算子 を使用して、データがnullのときに代替テキストを表示。

コード例

以下のコードを使用して、活動場所を表示する機能を実現しました。

<!-- 活動場所の名前 -->
<div class="bg-gray-100 p-4 rounded-md">
    <h3 class="text-lg font-bold">活動場所の名前</h3>
    <p class="text-gray-700">{{ $mapInfo->activity_location ?? 'データなし' }}</p>
</div>

??演算子の動作と詳細

{{ $mapInfo->activity_location ?? 'データなし' }}

仕組み

  1. mapInfo->activity_locationの値を確認
  2. 存在し、かつnullではない場合:
    → $mapInfo->activity_locationの値を表示
  3. 存在しない場合またはnullの場合:
    → データなし を表示

動作の具体例
$mapInfo->activity_locationが「新宿区」の場合:

$mapInfo->activity_location = "新宿区";

表示結果:

新宿区

$mapInfo->activity_locationがnullの場合:

$mapInfo->activity_location = null;

表示結果:

データなし

$mapInfo自体がnullの場合

$mapInfo = null;

表示結果;

データなし

従来のif文との比較

以下のif文と同じ意味を、??演算子で簡潔に表現すると以下になる
従来の書き方

if (isset($mapInfo->activity_location) && $mapInfo->activity_location !== null) {
    echo $mapInfo->activity_location;
} else {
    echo 'データなし';
}

演算子を使った書き方

{{ $mapInfo->activity_location ?? 'データなし' }}

メリット:

  • コードが簡潔で読みやすくなる
  • ネストが深くならず、テンプレート内での記述量が減少

最終的な成果

  • ?? 演算子を使用することで、データがnullの場合でも代替テキストを表示できるようになった
  • Laravel BladeテンプレートとTailwind CSSの組み合わせで、簡単に整ったUIを構築可能

まとめ

今回の記事では、LaravelのBladeテンプレートにおける「?? 演算子」の基本的な使い方とその効果について整理しました。
この演算子を活用することで、データが存在しない場合でもエラーを防ぎ、視覚的な整合性を保つことが可能です。

最後までご覧いただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?