Laravel : データベースにJSON形式のデータを保存するにはどうすればいいですか? 質問する

Laravel : データベースにJSON形式のデータを保存するにはどうすればいいですか? 質問する

指定された配列からデータベースに JSON 形式のデータを保存したいのですが、コントローラーを使用してどのように保存するのでしょうか。

次のようなJSONデータがあるとします:

{"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]}

私が知る限り、コントローラーで json 形式を使用するのは次のようになりますが、私はそれを完全には認識していません。

public function saveUser(Request $request)
{
    $div=new Div();
    $user->json = json_encode( array({"Date 1": {
        {"id":"bangladesh","divisions":[{"name":"Barisal"},{"name":"Chittagong"},{"name":"Dhaka"},{"name":"Khulna"},{"name":"Rajshahi"},{"name":"Rangpur"},{"name":"Sylhet"}]}   
    $div->save();    
    return redirect('getList');
}

Laravel コントローラーを使用して、部門モデルの部門のリストのみを MySQL に保存するにはどうすればよいですか?

ベストアンサー1

配列データを自分で JSON 文字列に変換する必要はありません。モデルで Laravel $casts パラメータを使用します。https://laravel.com/docs/5.2/eloquent-mutators#属性キャスト

Div モデルでは次のような操作を行う必要があります。

protected $casts = [
    'divisions' => 'array',
];

おすすめ記事