Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.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将JavaScript对象/数组发送到PHP控制器_Javascript_Php_Laravel 4 - Fatal编程技术网

使用AngularJS将JavaScript对象/数组发送到PHP控制器

使用AngularJS将JavaScript对象/数组发送到PHP控制器,javascript,php,laravel-4,Javascript,Php,Laravel 4,我目前正在使用Laravel作为我的PHP框架,在这里我设置了一个Api类,该类将启动并调用一个外部Api 不过,我希望通过AJAX和AngularJS使用此功能,我目前正在努力从Javascript传递数据。下面是它的工作原理: PHP API GET调用: Api::get('users/all', ['order' => 'desc']); 这将使用参数order=desc向api创建GET请求。但是,我不必为每个api调用创建路由,我希望动态执行此操作: 角度服务: app.fa

我目前正在使用Laravel作为我的PHP框架,在这里我设置了一个Api类,该类将启动并调用一个外部Api

不过,我希望通过AJAX和AngularJS使用此功能,我目前正在努力从Javascript传递数据。下面是它的工作原理:

PHP API GET调用:

Api::get('users/all', ['order' => 'desc']);
这将使用参数
order=desc
向api创建GET请求。但是,我不必为每个api调用创建路由,我希望动态执行此操作:

角度服务:

app.factory('Api', function($http) {

    return {
        query : function( method, path, data ) {
            return $http({
                method: 'POST',
                url: 'api',
                headers: { 'Content-Type' : 'application/json' },
                data: { 'method': method, 'path': path, 'data': data },
            });
        },
    }

});
然后我的PHP控制器:

    $method = Input::get('method');

    $path = Input::get('path');

    return Api::$method($path);
所以这是可行的,但是我很难将第三个数组参数从JS传递到PHP

var json = '{"order": "desc"}';

Api.query('get', 'users/list', json)
    .success(function(response) {
        $scope.test = response;
    });
在我的PHP中,我尝试
json\u解码它,但没有成功(实际上没有错误):


有人知道最好的解决方法是什么吗?

什么是问题?通过上面的代码,我可以从angularjs方法接收json_数据,并可以调用外部Api::$method($path,$data)。(我的Api类只是模拟的)
        $method = Input::get('method');

        $path = Input::get('path');

        $data = json_decode(Input::get('data'), true);

        return Api::$method($path, $data);