基本的にはEloquentモデルを使っているので、テーブル名をハードコードすることはないけれど、実装を進めてく中で時にはテーブル名を書かないといけないケースに出くわします。
テーブルを結合する時とか、そのテーブル同士に同じカラム名があってどっちのカラムか明示的に示さないといけない時とか。
テーブル名のハードコードは、できるならモデル内のメンバ変数$table
のみにしたいものです。
ということで、ちょっとしたメモ。
#方法その1
$userModel = new User();
$userTableName = $userModel->getTable();
//一行で書くなら
$userTableName = (new User())->getTable();
#方法その2
$userTableName = User::make()->getTable();
#まとめ
どちらもモデルのインスタンスを生成してテーブル名を取得してます。
テーブル名が欲しいだけなのにnewするのはなんだかなーとは思いますが、他に方法を思いつきませんでした。
#参考