- JSONの格納: Laravelでは、JSONをデータベースのテーブルに格納することができます。JSONカラムを持つテーブルを作成するためにマイグレーションを使用します。例えば、以下のようなマイグレーションファイルを作成します。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration
{
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->id();
$table->json('data');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('posts');
}
}
- JSONの取得: データベースからJSONを取得するには、Eloquent ORMを使用します。以下のように、モデルクラスでJSONカラムを定義し、取得することができます。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $casts = [
'data' => 'array',
];
}
これにより、$post->data
という形式でJSONデータにアクセスすることができます。
- JSONの更新: JSONデータを更新するには、Eloquentモデルの属性を直接変更し、保存するだけです。
$post = Post::find(1);
$post->data = ['title' => 'New Title', 'content' => 'New Content'];
$post->save();
- JSONのクエリ:
JSONデータをクエリする場合、
where
メソッドを使用して、JSON内の特定のキーまたは値を検索することができます。以下は例です。
$posts = Post::where('data->title', 'like', '%Laravel%')->get();
上記のクエリは、"data"カラム内の"title"キーが"Laravel"を含む投稿を取得します。
このように、Laravelではデータベース内のJSONをシンプルに扱うことができます。上記のコード例を参考にして、JSONを格納、取得、更新、クエリする方法を実装してみてください。