https://github.com/fumeapp/modeltyper
導入と生成がとても簡単なのでおすすめです。
composer require --dev fumeapp/modeltyper
php artisan model:typer --use-types
# 実行すると画面上に表示されるので、クリップボードに入れたい場合は、
php artisan model:typer --use-types | pbcopy
php artisan model:typer
# 実行すると画面上に表示されるので、クリップボードに入れたい場合は、
php artisan model:typer | pbcopy
方法1: 対象となるモデルファイルにcastを追加する。
モデルの$castsに'is_active' => 'integer'を追加します。modeltyperはキャストを優先するため、is_activeがnumber型として生成されます。
protected $casts = [
'estimate_date' => 'datetime',
'is_active' => 'integer', // 追加: modeltyperでnumber型として認識させる
];
方法2: カスタムマッピングを使用する(すべてのtinyintに影響)
すべてのtinyintカラムをnumberとして扱いたい場合は、config/modeltyper.phpのcustom_mappingsを設定します:
config/modeltyper.php
'custom_mappings' => [
'tinyint' => 'number', // すべてのtinyintをnumber型として扱う
],
config/modeltyper.php
'excluded_models' => [
// 特定のモデルを型生成から除外する。
\App\Models\Admin::class,
],
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