近年、Laravel は Web 開発分野のリーダーとなり、これを使用して独自のプロジェクトの開発を開始する人が増えています。 Laravel は柔軟性とスケーラビリティが非常に高いためです。ただし、データベースを操作する場合、フィールドのタイプ、サイズ、デフォルト値などを含むテーブルの構造を変更する必要があることがよくあります。この記事では、Laravel 5.4 でフィールドタイプを変更する方法について説明します。
まず、Laravel スキーマ ビルダーの基本を理解する必要があります。スキーマビルダーは、データベーステーブルの構造を簡単に作成および変更する方法を提供する Laravel のコンポーネントです。ここでは、例として MySQL を使用して説明します。
データ型が整数型 (INT) である「age」という名前のフィールドを持つユーザー テーブル (users) があるとします。次に、それを文字列型 (VARCHAR ) に変更する必要があります。
ステップ 1: 移行ファイルを作成する
Laravel の移行ファイルは、データベース内のテーブル構造の「設計図」です。フィールド タイプの変更を完了するには、新しい移行ファイルを作成する必要があります。
Artisan コマンド ライン ツールを使用して、次のコマンドを入力できます:
php artisan make:migration modify_users_table --table=users
このコマンドは、「modify_users_table」という名前の新しい移行ファイルを作成します。ファイルを開いて、次のコードを使用して up メソッドに移行ロジックを記述する必要があります。
use Illuminate\Support\Facades\Schema; use Illuminate\Database\Schema\Blueprint; use Illuminate\Database\Migrations\Migration; class ModifyUsersTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function (Blueprint $table) { $table->string('age')->change(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::table('users', function (Blueprint $table) { $table->integer('age')->change(); }); } }
この移行ファイルでは、Schema::table メソッドを使用して users テーブルを操作します。次に、Blueprint オブジェクトを使用して、新しい構造の定義が作成されます。次に、change() メソッドを使用して、「年齢」フィールドの型を変更します。このメソッドは、Laravel に「年齢」フィールドのデータ型を文字列型に設定するように指示します。
同じ移行ファイルに複数のフィールドを追加する場合、複数の change() メソッドを使用してデータ型を 1 つずつ変更できることに注意してください。
ステップ 2: 移行ファイルを実行する
移行ファイルを作成したので、次のコマンドを実行して、Laravel が移行ファイルに基づいて users テーブルへの変更を処理できるようにします。
php artisan migrate
このコマンドは、まだ実行されていないすべての移行ファイルを実行し、それらを移行ファイル テーブルに記録します。したがって、移行が最初または唯一の移行である場合は、 --pretend オプションを使用する必要はありません。
ステップ 3: 検証
移行が成功したら、データベースに移動して users テーブルの構造を表示し、変更したデータ型フィールドが有効になっていることを確認します。 MySQL サーバーでは、次のコマンドを使用できます。
DESCRIBE users;
このコマンドは、users テーブルの構造と、移行ファイルで変更したデータ型のフィールドを表示します。変更が成功すると、その型が VARCHAR 型に設定されていることがわかります。
+-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(10) | NO | PRI | NULL | auto_increment | | name | varchar(255) | NO | | NULL | | | age | varchar(255) | NO | | NULL | | +-------+--------------+------+-----+---------+----------------+
概要
Laravel では、フィールドのデータ型を変更するのは非常に簡単です。新しい移行ファイルを作成し、スキーマ ビルダーの API を使用するだけで簡単に実行できます。テーブル構造の他の側面を変更したい場合は、移行ファイルを変更することで簡単に変更できます。つまり、Laravel は Web 開発において非常に強力なツールであり、テーブル構造の変更やその他の機能の実装を簡単に行うことができます。
以上がLaravelでフィールドタイプを変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。