Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 正在验证Laravel中的输入::json()_Angularjs_Laravel_Angular Resource - Fatal编程技术网

Angularjs 正在验证Laravel中的输入::json()

Angularjs 正在验证Laravel中的输入::json(),angularjs,laravel,angular-resource,Angularjs,Laravel,Angular Resource,验证不适用于Input::json。我尝试了使用json_解码/使用数组的不同方法,但仍然没有成功。这是我的密码: //routes.php Route::get('create', function() { $rules = array( 'username' => 'required', 'password' => 'required', ); $input = Input::json(); //var_dump

验证不适用于Input::json。我尝试了使用json_解码/使用数组的不同方法,但仍然没有成功。这是我的密码:

//routes.php
Route::get('create', function() {

    $rules = array(
        'username' => 'required',
        'password' => 'required',
    );

    $input = Input::json();
    //var_dump($input); //outputs std obj with correct inputs
    $validation = Validator::make($input, $rules);
    if ($validation->fails()) { //throws exeption "Call to a member function to_array() on a non-object"
        return Response::json($validation->errors->all());
    }

}

我使用Angular Resource发布数据…但它总是抛出一个错误“调用非对象上的_array()的成员函数”…我无法粘贴Angular代码,因为我无法正确格式化它,stackoverflow不允许我这样做。

这是因为在input::json()中返回一个对象,验证方法需要数组或有说服力的对象。您可以做的是将对象转换为数组

$input = Input::json();
$input_array = (array)$input;

$validation = Validator::make($input_array, $rules);
更新:


在与@Ryan讨论之后,我注意到问题不是来自验证,而是在响应中::eloquent()是通过数组而不是一个eloquent对象传递的

这是因为在input::json()中返回一个对象,验证方法需要数组或雄辩的对象。您可以做的是将对象转换为数组

$input = Input::json();
$input_array = (array)$input;

$validation = Validator::make($input_array, $rules);
更新:


在与@Ryan讨论之后,我注意到问题不是来自验证,而是在响应中::eloquent()是通过数组而不是一个eloquent对象传递的

从[至少]Laravel 5.3开始,您需要在@Raftalks post的答案中添加->all()。下面是一个在一行中自动抛出异常(422)和所有错误的速记方法:

use Validator;
use Input;

... other stuff

Validator::make((array)Input::json()->all(), ["rule"=>"filter"])->validate();

从[至少]Laravel 5.3开始,您需要在@Raftalks post的答案中添加->all()。下面是一个在一行中自动抛出异常(422)和所有错误的速记方法:

use Validator;
use Input;

... other stuff

Validator::make((array)Input::json()->all(), ["rule"=>"filter"])->validate();

我已经尝试过将Input::json转换为array和其他格式,但仍然遇到相同的错误“在非对象上调用成员函数到_array()”;var_转储返回$input返回正确的数组。我对此感到抓狂。@Ryan你能将完整的错误消息粘贴到paste.laravel.com上并在此处共享链接吗?未处理的异常消息:调用成员函数到非对象位置上的_array():`C:\xampp\htdocs\myApp\framework\laravel\helpers.php,第288行
我不知道laravel调用_array()的原因关于数组…我传递的数组参数已经不是对象了。你能在Laravel IRC上联机吗?我尝试过在IRC上发布它,但没有人尝试回复我…我把我的代码粘贴在这里:然后在IRC频道上发布,但仍然没有得到回复。我已经尝试过将Input::json转换为数组和所有内容,但仍然得到相同的错误“对非对象上的_array()调用成员函数”var_dumping返回$input返回正确的数组。对此我有些挠头。@Ryan能否将完整的错误消息粘贴到paste.laravel.com上,并在此处共享链接未经处理的异常消息:对_array()调用成员函数在非对象位置:`C:\xampp\htdocs\myApp\framework\laravel\helpers.php,第288行
我不知道laravel为什么调用_array()我传递的数组参数已经不是对象了。你能在Laravel IRC上上网吗?我试着在IRC上发布,但没有人回复我。我把代码贴在这里,然后在IRC频道上发布,但仍然没有回复。