質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

Q&A

解決済

1回答

2725閲覧

LaravelとBladeやLivewireの変数の命名について

m055001

総合スコア72

変数

変数は、プログラミングにおいて値や文字列などのデータを保持できる仕組みを指します。自由に名前を付けることができるため、管理しやすくなるのが特徴です。プログラムで変数の宣言を行い、値を代入して利用。保持したデータが通用する範囲でローカル変数とグローバル変数に分けられます。

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Blade

Bladeとは、 PHPフレームワークのLaravelで使用することができるテンプレートエンジンです。テンプレートの継承とエスケープ機能を提供します。

命名規則

命名規則は、プログラミングする際に識別子の名称である文字列を決める表記法のことです。ネーミング規則・ネーミング規約・命名規約とも呼びます。

0グッド

0クリップ

投稿2021/04/08 08:29

質問

Laravelの変数の命名規則はスネークケースかと思うのですが、BladeやLivewireのコンポーネントの変数はキャメルケースになっています。

@livewire()の場合は第2引数の配列を使うことで、スネークケースの変数をコンポーネントに渡すことができますが、<livewire: />を使う場合、キャメルでないと渡すことができなさそうでした。

やはり<livewire: />を使った実装をしようと思うと、LaravelのコントローラーやBladeのビューはスネークケースで書き、コンポーネントに変数を渡す際にはキャメルケースで渡し、コンポーネントのクラスやビューではキャメルケースで書くしかないのでしょうか?

質問の経緯

  • 普段、PHPはスネークケース、JSはキャメルケースで描いている
  • BladeやLivewireコンポーネントを使用するのは今回が初めて
  • コントローラーで定義し、ビューに渡した$post_id変数を、ビュー内に埋め込んだコンポーネントに以下の形で渡そうとしたところ、コンポーネントクラスのプロパティで受け取れなかったため

<livewire:example :post_id="$post_id" />

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ここでケバブからキャメルに変換してるのでLivewireとしてはhtmlはケバブ、PHPはキャメル。
https://github.com/livewire/livewire/blob/2f06b28be0aa0d5bf0a4598b4b571d7d1a24e5c1/src/LivewireTagCompiler.php#L44
Laravelでもキャメルに変換。
https://github.com/laravel/framework/blob/c351a309f1a02098f9a7ee24a8a402e9ce06fead/src/Illuminate/View/Compilers/ComponentTagCompiler.php#L216
Vueと同じルール。
https://v3.ja.vuejs.org/style-guide/#%E3%83%95%E3%82%9A%E3%83%AD%E3%83%8F%E3%82%9A%E3%83%86%E3%82%A3%E5%90%8D%E3%81%AE%E5%9E%8B%E5%BC%8F-%E5%BC%B7%E3%81%8F%E6%8E%A8%E5%A5%A8

このキャメルへの変換はスネークでもケバブでも同じ。-_も消してる。
post_idpostIdに変換。

結論:PHP側はキャメル。html側はスネークかケバブで書く。
一番いいのは変換の影響受けないようにpostだけでいいように書くことだろうな。

ドキュメントにちゃんと書いてあった。
https://readouble.com/laravel/8.x/ja/blade.html#casing

投稿2021/04/08 10:18

kawax

総合スコア10377

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問