人気のPHP WEBアプリケーションフレームワークLaravelのTips。 (Laravelアプリの初期化)composer create-project laravel/laravel my-app

Laravel で 実際にデータベースを見に行った上でTypeScriptの型を生成するパッケージ

● fumeapp/modeltyper

https://github.com/fumeapp/modeltyper

導入と生成がとても簡単なのでおすすめです。

インストール

composer require --dev fumeapp/modeltyper

実行 ( type を使う場合)

php artisan model:typer --use-types

# 実行すると画面上に表示されるので、クリップボードに入れたい場合は、 
php artisan model:typer --use-types | pbcopy

実行 ( interface を使う場合)

php artisan model:typer

# 実行すると画面上に表示されるので、クリップボードに入れたい場合は、 
php artisan model:typer | pbcopy

・ tinyintカラムをnumberとして扱いたい

方法1: 対象となるモデルファイルにcastを追加する。

モデルの$casts'is_active' => 'integer'を追加します。modeltyperはキャストを優先するため、is_activenumber型として生成されます。

    protected $casts = [
        'estimate_date' => 'datetime',
        'is_active' => 'integer', // 追加: modeltyperでnumber型として認識させる
    ];

方法2: カスタムマッピングを使用する(すべてのtinyintに影響)

すべてのtinyintカラムをnumberとして扱いたい場合は、config/modeltyper.phpcustom_mappingsを設定します:

config/modeltyper.php

    'custom_mappings' => [
        'tinyint' => 'number', // すべてのtinyintをnumber型として扱う
    ],

・特定のモデルの型生成を除外する

config/modeltyper.php

    'excluded_models' => [
        // 特定のモデルを型生成から除外する。 
        \App\Models\Admin::class,
    ],

● nolanos/laravel-model-typescript-transformer

https://github.com/nolanos/laravel-model-typescript-transfomer

config/typescript-transformer.php

<?php

return [
    'collectors' => [
        // ...
        Nolanos\LaravelModelTypescriptTransformer\ModelTypeScriptCollector::class,
    ],
    'transformers' => [
        // Etc....
        Nolanos\LaravelModelTypescriptTransformer\ModelTransformer::class,
    ],
];
php artisan typescript:transform 
No.2685
12/11 15:25

edit