如何在laravel中从内部api请求获取json响应?

时间:2017-04-20 09:12:42

标签: php json laravel laravel-5.4

我的路线档案(routes / api.php):

Route::group(['middleware'=>'cors', 'prefix'=>'v1/'], function(){
    Route::resource('users', 'UserController');
    Route::resource('products', 'ProductController');
    Route::resource('categories', 'CategoryController');

    Route::resource('authenticate', 'AuthenticateController', ['only' => ['index']]);
    Route::post('authenticate', 'AuthenticateController@authenticate');
    Route::get('authenticate/user', 'AuthenticateController@getAuthenticatedUser');
});

我的ProductController文件():

public function index(){
    $request = Request::create('api/v1/products/', 'GET');
    $instance = json_decode(Route::dispatch($request)->getContent());
    echo "<pre>"; print_r($instance); exit;

    return view('pages.users.my_sell', ['products'=>$products]); 
}

当我尝试打印$ instance变量时,我收到以下错误: enter image description here

我需要从api获取所有对象,并且需要将对象传递给我的刀片。

2 个答案:

答案 0 :(得分:2)

你做错了。如果您不想重复Eloquent代码,只需在模型中创建一个getAllPproducts()方法并在控制器方法中使用它:

public function index()
{
    return view('pages.users.my_sell', [ 
        'products' => $this->product->getAllProducts()
    ]); 
}

只是getAllProducts()的一个例子:

public function getAllProducts()
{
    return $this->paginate(20);
}

答案 1 :(得分:1)

在你的控制器中,你有这个吗?

use \Illuminate\Support\Facades\Route;