- マイグレーションファイルの作成: まず、マイグレーションファイルを作成します。コマンドラインで以下のコマンドを実行します。
php artisan make:migration create_blog_table
これにより、create_blog_table
という名前の新しいマイグレーションファイルが生成されます。
- JSONカラムの作成:
マイグレーションファイルを開き、
up
メソッド内でjson
メソッドを使用してJSONカラムを作成します。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateBlogTable extends Migration
{
public function up()
{
Schema::create('blogs', function (Blueprint $table) {
$table->id();
$table->json('data'); // JSONカラムの作成
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('blogs');
}
}
上記の例では、blogs
テーブルにdata
というJSONカラムを追加しています。
- マイグレーションの実行: 以下のコマンドを使用してマイグレーションを実行します。
php artisan migrate
これにより、マイグレーションがデータベースに適用され、blogs
テーブルが作成されます。
- JSONカラムの操作: JSONカラムには便利なメソッドがいくつかあります。以下にいくつかの例を示します。
// JSONカラムへのデータの挿入
$blog = new Blog();
$blog->data = ['title' => 'Example', 'content' => 'This is an example'];
$blog->save();
// JSONカラムの値の取得
$blog = Blog::find(1);
$data = $blog->data; // JSONデータを取得
// JSONカラムの値の更新
$blog = Blog::find(1);
$blog->data['title'] = 'Updated Title';
$blog->save();
// JSONカラムの特定のキーの値の取得
$blog = Blog::find(1);
$title = $blog->data['title']; // 'Updated Title'を取得
// JSONカラムの特定のキーの値の更新
$blog = Blog::find(1);
$blog->data->title = 'Updated Title';
$blog->save();
これらの例では、Blog
モデルを仮定していますが、実際のモデルに応じて適切なコードを使用してください。
上記の手順とコード例を参考にして、LaravelのマイグレーションでJSONカラムを作成し、操作する方法を学ぶことができます。