環境
Windows10,Laravel9
Laravelでcomponentを作成し、変数を持たせる方法
まず、プロジェクトフォルダ直下まで移動し、
コマンド
php artisan make:component 好きなコンポネント名
でLaravelプロジェクトフォルダに2つのファイルができます。
1つ目は、
app/View/Components
直下にできます。この中身は、クラスのプロパティや、コンストラクタなどを定義します。
下が例です。今回の例では、プロパティ≒変数を5つ定義してます。
2つ目のファイルは
resources/views/components
直下に作成されます。これはviewファイルで今回の例では、下のようになってます。
今回の例では、指定したイメージ画像($object)が、ふわふわと上($up)下($down)にある一定間隔($speed)で動き続けます。そのサイズや装飾などは$classで追加できるというものです。
実際にこのcomponentで利用するときは、下記のように利用したいviewファイルに書きます。
黄色で囲んだところが今回作成したcomponentを利用するにあたって必要なコードです。
初めの赤枠では、必要な変数を示してます。
緑色の枠は、Laravelでcomponentを利用する際の決まった書き方です。
青文字のところは、コンポネントそのものを呼び出してます。
水色のところは変数を渡しています。
ここで起こりやすいエラー
コンポネントに変数を渡すときにエラーになることがあります。
僕が、直面したエラーは、なぜか特定の変数をわたせないというものです。
解決方法
その理由は、変数名が複数英単語によりできたものだからでした。
たとえばですが、$up_limit,$upLimitなどの変数名を、上記の画像すべての$upにおきかえると、エラーになってしまします。
Laravelのcomponentに変数を渡すときは、1つの英単語だとすんなりいける可能性があがります。複数英単語の組み合わせによる変数名でも可能ではありますが、なにかルールがあるようです。(※単一単語にすぐ切り替えたので、深くは調べてません。)
いったん、複合英単語でエラーになっている人は参考に一助になればと思います。
返信がありません