Laravel Eloquentでフィールド名のみを取得する方法


  1. 「getFillable」メソッドを使用する方法: 「getFillable」メソッドは、モデルで指定されたfillableプロパティに基づいて、モデルのフィールド名の配列を返します。以下は使用例です。

    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Model;
    class YourModel extends Model
    {
       protected $fillable = ['field1', 'field2', 'field3'];
    }
    // フィールド名の配列を取得する
    $fields = YourModel::fillable();
  2. 「getTableColumns」メソッドを使用する方法: Eloquentの「getTableColumns」メソッドは、データベーステーブルのフィールド名の配列を返します。以下は使用例です。

    <?php
    use Illuminate\Support\Facades\Schema;
    // テーブル名を指定してフィールド名の配列を取得する
    $fields = Schema::getColumnListing('your_table_name');
  3. モデルの「$table」プロパティと「getConnection」メソッドを使用する方法: モデルの「$table」プロパティと「getConnection」メソッドを組み合わせて使用することで、データベーステーブルのフィールド名を取得できます。以下は使用例です。

    <?php
    namespace App\Models;
    use Illuminate\Database\Eloquent\Model;
    use Illuminate\Support\Facades\DB;
    class YourModel extends Model
    {
       protected $table = 'your_table_name';
       // フィールド名の配列を取得する
       public static function getFieldNames()
       {
           $tableName = self::getConnection()->getTablePrefix() . $this->table;
           $columns = DB::getSchemaBuilder()->getColumnListing($tableName);
           return $columns;
       }
    }
    // フィールド名の配列を取得する
    $fields = YourModel::getFieldNames();

これらの方法を使うことで、LaravelのEloquent ORMを使用してデータベーステーブルのフィールド名のみを取得することができます。適切な方法を選択し、プロジェクトの要件に合わせて利用してください。