Laravelメモ:覚えておきたい知識まとめ(自分用)

Laravelを学習する中で「その場では理解したけど、少し経つと忘れる…」というポイントをまとめたメモページです。

困ったときにすぐ見返せるよう、項目は増えたら随時追記していきます。

Bladeコンポーネント(<x-...>)の探しに行く順番

Bladeコンポーネントを呼び出す <x-〇〇〇>タグがあると、Laravelはまず クラスベースコンポーネントを探し、なければ 匿名コンポーネントを探す。

  1. app/View/Components/… に対応する コンポーネントクラスがあるか確認 → あればクラスを実行し、render() が返すBladeを表示する
  2.  クラスが無ければ resources/views/components/… の Blade(匿名コンポーネント)を探す
     → 見つかればそのBladeを表示する

コンポーネントのサブディレクトリはドット記法

<x-forms.input> のようにドットで区切ると、サブディレクトリのコンポーネントを呼び出せる。

  1. クラスベースなら app/View/Components/Forms/Input.php
  2. 匿名コンポーネントなら resources/views/components/forms/input.blade.php

タグ名はケバブケース、クラス名はパスカルケースで対応する(<x-user-profile>UserProfile)。

@propsと$attributesの違い(匿名コンポーネント)

匿名コンポーネントに渡した属性は、@props で宣言したものだけが変数になる。宣言していない属性は $attributes に入る。

{{-- resources/views/components/alert.blade.php --}}
@props(['type' => 'info'])
<div {{ $attributes->merge(['class' => "alert alert-{$type}"]) }}>
    {{ $slot }}
</div>

@props に書き忘れると、変数として使えず $attributes 側に流れるので「undefined variable」になる。

コンポーネントを修正したのに反映されないとき

BladeはコンパイルされたPHPが storage/framework/views にキャッシュされる。修正が反映されないときは:

php artisan view:clear

route / config / view / cache をまとめて消すなら:

php artisan optimize:clear
タイトルとURLをコピーしました