1

我正在学习laravel。我正在努力Rest API。我已经controller使用 curl 发布如下

public function post_index()
{

        $cat = Input::json();
        $dbCat = new Category();
        $dbCat->code = $cat->code;
        $dbCat->name = $cat->name;
        $dbCat->save();
        return $dbCat->toJson();


}

当我尝试使用 curl 发布时,我收到以下错误

Message:

Trying to get property of non-object
Location:

C:\xampp\htdocs\NewBlog\application\controllers\api\category.php on line 22

堆栈跟踪是

#0 C:\xampp\htdocs\NewBlog\laravel\laravel.php(42): Laravel\Error::native(8, 'Trying to get p...', 'C:\xampp\htdocs...', 22)
#1 C:\xampp\htdocs\NewBlog\application\controllers\api\category.php(22): Laravel\{closure}(8, 'Trying to get p...', 'C:\xampp\htdocs...', 22, Array)
#2 [internal function]: Api_Category_Controller->post_index()
#3 C:\xampp\htdocs\NewBlog\laravel\routing\controller.php(325): call_user_func_array(Array, Array)
#4 C:\xampp\htdocs\NewBlog\laravel\routing\controller.php(285): Laravel\Routing\Controller->response('index', Array)
#5 C:\xampp\htdocs\NewBlog\laravel\routing\controller.php(165): Laravel\Routing\Controller->execute('index', Array)
#6 C:\xampp\htdocs\NewBlog\laravel\routing\route.php(153): Laravel\Routing\Controller::call('api.category@in...', Array)
#7 C:\xampp\htdocs\NewBlog\laravel\routing\route.php(124): Laravel\Routing\Route->response()
#8 C:\xampp\htdocs\NewBlog\laravel\laravel.php(167): Laravel\Routing\Route->call()
#9 C:\xampp\htdocs\NewBlog\public\index.php(34): require('C:\xampp\htdocs...')
#10 {main}

我怎样才能解决这个问题?

4

3 回答 3

1

由于您使用 Input::json() 填充 $cat,因此您需要确保发送的 curl 请求具有将内容类型设置为 application/json 的标头

curl 并不是真正为发送 json 而构建的,您可以发送普通的帖子字段吗?

真的...我们需要有关您的情况的更多信息,例如您用于发送 curl 请求的代码

于 2012-11-20T07:05:55.853 回答
0

如果它按照另一个答案中的指示工作,并且您现在遇到 json 包装器“加倍”的问题,那么我建议使用 eloquent_to_json() 而不是 json_encode() http://laravel.com/api /function-eloquent_to_json.html

于 2012-12-14T18:00:48.360 回答
0

在不知道第 22 行是什么的情况下,我的建议是检查它$cat实际上是一个对象。它最有可能抛出该错误,因为它是null,或者正如错误所说,是一个非对象。

于 2012-11-20T06:33:30.020 回答