2017-11-23 11 views
0

私はLaravel 5を使用しており、動作中のRestful APIを実装しています。私はLaravel 5 API - ハンドル配列

post 
    title 
    excerpt 
    content 
    image 
post 
    title 
    excerpt 
    content 
    image 

APIは現在、一人の個人ポスト投函のための素晴らしい作品...このような配列で渡すことによって作成されるポストを許可しようとしていますが、どのように私の代わりにポストの配列を扱うことができますか?

誰も私が見ることができる例はありますか?

+0

あなたが使っているコードは何ですか?あなたは 'insert()'を探しているかもしれません – C2486

+1

私は問題が何かを理解していません。あなたは配列を持っているので、すべてのポスト値でINSERTクエリを実行するだけです。私はLaravelと一緒にこのことを難しくするものがあると思っていますが、私たちに言わないと助けません。 – Gordon

答えて

1

、あなたが方法store()PostsControllerを持っている必要があります。

{"posts": [{"title":"foo"},{"title":"bar"}, …]} 

だから、あなたが入力をjson_decodeする必要があります:私はあなたの要求ペイロードは、このようないくつかのJSONであると仮定しています。

public function store() 
{ 
    $posts = json_decode($request->input('posts', '')); 
    if (is_array($posts)) { 
     DB::table('posts')->insert($posts); 
    } 
} 

JSONペイロードを自動的にデコードするプラグインまたはミドルウェアなどがあります。しかしそれとは別に、あなたが求めていることをすることについて特別なことは何もありません。

store()メソッドを使用したくない場合(すでに1つの投稿などが保存されているため)、複数の投稿に別のルートを追加することができます。

+0

ありがとうございました – fightstarr20

1

本文にJSONを送信しようとしましたか?

{ 
    "parameters":[  
     {  
     "value":{  
      "array":{  
       "elements":[  
        {  
        "string":{  
         "value":"value1" 
        } 
        }, 
        {  
        "string":{  
         "value":"value2" 
        } 
        }, 
        {  
        "string":{  
         "value":"value3" 
        } 
        } 
       ] 
      } 
     }, 
     "type":"Array/string", 
     "name":"arrayvariable" 
     } 
    ] 
} 

これは、アレイにあなたがDB、あなたはそれを保存するたびにそれを得るたびに変換されます。ここでは

リクエストボディには、次のようになります。例とlink

ですDB。ここ

とはlink

使用属性鋳物の鋳造laravelを使用した例です。あなたのidmodelモデルを開き、これを追加します。あなたは、リソースコントローラを使用している場合

protected $casts = [ 
    'id' => 'array' ]; 
+0

あなたは、あなたの答えに主要な関連情報を含めてください。あなたがリンクすると、体にJSONを送信しようとしたかどうかという疑問が残ります。 – Gordon

+0

アドバイスをいただき、ありがとうございます。 – MartinLeitgeb