【发布时间】:2013-11-01 04:56:07
【问题描述】:
我已阅读并使用过其他关于此的帖子,看来我刚刚下载的 Laravel 4 版本对控制器处理 JSON 输入的方式进行了更多更改。
$input = Input::json()->all(); 给我错误,好像我在执行 PUT 请求后请求有效负载的某些部分时指的是不存在的东西。如果没有->all();,我会得到一个 symfony 错误。
有谁知道如何在 Laravel 4 的最新版本中从主干获取良好的 JSON?
目前,我正在做很多事情来获取我的数据,即:
$input_title = Input::get('title');
$input_completed = Input::get('completed');
$task = Task::find($id);
$task->title = $input_title;
$task->completed = $input_completed;
$task->save();
是的,我正在做关于 tutsplus 的教程来学习 laravel/backbone,所以请耐心一点。
我在使用Input::get(); 时遇到的错误是:
{"error":{"type":"UnexpectedValueException","message":"响应内容必须是实现__toString()的字符串或对象,给定\"array\"。","file":"/Users/ brentlawson23/Sites/laravel4App/bootstrap/compiled.php","line":16858}}
我真的很想得到 Laravel 特定的答案,而不是直接使用 php 来对有效负载进行字符串化。
我只使用 Input::json(); 得到同样的错误
对于 Laravel 4 的当前 beta,Input::json();没有获得可用于在表中创建新行的请求有效负载的字符串化版本, Input::json()->all(); 也没有(希望与 symfony 的 ParameterBag 配合得很好)。我在其他黑客中尝试过 json_encode,基本上在这个 tut 中的每一步,我都碰到了一些砖墙。根据我在这里提出的内容,有人有什么建议吗?
今天我只是尝试回应 $input = Input::json(); 的结果时得到了这个:
{"error":{"type":"ErrorException","message":"可捕获的致命错误:无法将 Symfony\Component\HttpFoundation\ParameterBag 类的对象转换为 /Users/brentlawson23/Sites/laravel4App/app 中的字符串/controllers/TasksController.php 第 45 行","file":"/Users/brentlawson23/Sites/laravel4App/app/controllers/TasksController.php","line":45}}
是的,我研究过 Symfony API。
【问题讨论】:
-
你能用
Input::get()(无参数)吗? -
嗯,嗯,不确定,我试试看,谢谢
-
所以实际上不起作用,简单直观,我很欣赏它,但它给出了同样的错误
-
您能否在问题中包含错误,它可能有助于某人重现/调试。
标签: backbone.js laravel