2017-02-22 62 views
0

Я использую Laravel 5.4. Я создал контроллер с помощью интерфейса:Невозможно отобразить запрос тела json в объект ответного ответа

$php artisan make:controller --resource 

Я реализует то метод store(Request $request) таким образом:

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

Я использую правильный MyCustomObject внутри Controller, и мой собственный Объектом является следующее:

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"; 
    } 
} 

Затем я использую следующий орган на остальном клиенте (с помощью приложения/json содержание):

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

Но мой ответ пуст, так что JSON не отображается в MyCustomObject.

Что я делаю неправильно?

+0

Что произойдет, если вы 'dd ($ request);' перед возвратом? – Samsquanch

+0

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

+0

Ну, я бы сказал, что это ожидалось, так как вы ни разу не устанавливаете '$ request-> setText()'. Что вы пытаетесь сделать здесь? Я думаю, что есть некоторые проблемы с тем, что вы пытаетесь сделать против подхода, который вы принимаете. – Samsquanch

ответ

0

Попробуйте с JSON

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

Он пошлет вас обратно ответ в виде объекта JSON. Также используйте $request->all() или $request->text.