PHP-调用内部API

时间:2019-02-23 13:38:37

标签: php laravel

我是PHP的新手。 我使用* composer **创建了一个Laravel项目。 我的控制器有两个端点 uploadFile testpost

public function uploadFile(Request $request) {
    //there are more code about reading uploaded file here. Everything is OK here.

    $request = Request::create('/api/testpost', 'POST',
        [],[],[],[],'{"this is" : "my test content"}');
    return Route::dispatch($request);
}

public function testpost(Request $request){
    Log::info($request->all());

    return response()->json(["title"=>"this is the test get method"]);
}
POST操作从带有上载JSON文件的表单中调用

uploadFile 。 我想使用 Request :: create(...) Route :: dispatch(。)在 uploadFile 方法内调用 testpost 。 ..) testpost 被调用,但是请求的主体与预期的不一样。日志文件显示 $ request-> all()不会返回我希望为 {“ this is”:“ my test content”} 的请求正文

我的日志文件:

[2019-02-23 12:16:47] local.INFO: array (
  '_token' => 'JzQjclRD4WaTkezqLxlU48D1dM7S3X2X3hok3kr4',
  'employee_file' => 
  Illuminate\Http\UploadedFile::__set_state(array(
     'test' => false,
     'originalName' => 'test_input_file.txt',
     'mimeType' => 'text/plain',
     'error' => 0,
     'hashName' => NULL,
  )),
)

我的代码有什么问题? API调用还是请求主体检索? 我知道我们可以直接调用 testpost 方法,而不是调用API。但是,我的最终目的是要知道如何调用内部API。

1 个答案:

答案 0 :(得分:1)

您无需为此使用内部API调用。

如果两个方法都在同一个类中,则可以直接使用

进行调用
$this->methodName($args);

,它将结果直接返回到调用函数。 (只要您在调用的方法中有return语句)