LoginSignup
4
4

More than 3 years have passed since last update.

【Laravel】Eloquentモデルからテーブル名を取得する方法

Posted at

基本的にはEloquentモデルを使っているので、テーブル名をハードコードすることはないけれど、実装を進めてく中で時にはテーブル名を書かないといけないケースに出くわします。

テーブルを結合する時とか、そのテーブル同士に同じカラム名があってどっちのカラムか明示的に示さないといけない時とか。

テーブル名のハードコードは、できるならモデル内のメンバ変数$tableのみにしたいものです。

ということで、ちょっとしたメモ。

方法その1

$userModel = new User();
$userTableName = $userModel->getTable();

//一行で書くなら
$userTableName = (new User())->getTable();

方法その2

$userTableName = User::make()->getTable();

まとめ

どちらもモデルのインスタンスを生成してテーブル名を取得してます。
テーブル名が欲しいだけなのにnewするのはなんだかなーとは思いますが、他に方法を思いつきませんでした。

参考

4
4
1

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
4
4