2017-02-22 7 views
0

私はLaravel 5.4を使用しています。 私は、CLIを使用してコントローラを作成しました:リクエストボディjsonを注入応答オブジェクトにマップできません

$php artisan make:controller --resource 

私はstore(Request $request)方法、この方法を実装しています:

public function store(MyCustomObject $request) 
{ 
    return $request; 
} 

私はController内部の正しいMyCustomObjectを使用して、そして私のカスタムしていますオブジェクトは次のとおりです:

class MyCustomObject 
{ 
    /** @var string text */ 
    private $text; 

    /** 
    * text getter method 
    * @return string $text 
    */ 
    public function getText() 
    { 
     return $this->text; 
    } 

    /** 
    * text setter method 
    * @param string $text $text 
    */ 
    public function setText(string $text) 
    { 
     $this->text = $text; 
    } 

    /** 
    * toString method 
    * @return string class string conversion 
    */ 
    public function __toString() 
    { 
     return "$this->text"; 
    } 
} 

次に、残りのクライアントで次のボディを使用しています(application/json conを使用しています)。テント):

{"text":"Hello, World!"} 

しかし、そのjsonはMyCustomObjectにマップされていないので、私の応答は空です。

私は間違っていますか?

+0

戻る前に 'dd($ request);'を実行するとどうなりますか? – Samsquanch

+0

'MyCustomObject {#181 -text:null }' – abierto

+0

まあ、私は '$ request-> setText()'を設定していないので期待しています。ここで何を達成しようとしていますか?あなたがやろうとしていることと、あなたが取っているアプローチとの間に問題があると思います。 – Samsquanch

答えて

0

は、それはJSONオブジェクトとして応答をあなたに戻って送信されますJSON

return response()->json($request->all()); 

で試してみてください。また、$request->all()または$request->textを使用してください。

関連する問題