在laravel 5中将数组转换为Request对象

par*_*oid 8 php laravel laravel-5 laravel-5.1

我在这样的用户控制器中有存储方法

public function store(Request $request)
{
    User::create($request->all()); 

}
Run Code Online (Sandbox Code Playgroud)

在另一个控制器中我想使用这种方法

 public function test(Request $request)
{
  .....
   app('\App\Http\Controllers\UserController')->store($test_array);
  ...
}
Run Code Online (Sandbox Code Playgroud)

并$test_array是:

{"name":"test","email":"test@gmail.com"}
Run Code Online (Sandbox Code Playgroud)

最后告诉我这个错误

传递给App\Http\Controllers\UserController :: store()的参数1必须是Illuminate\Http\Request的实例,

如何将数组转换为Request对象?

小智 15

只是用

$request = new Illuminate\Http\Request($test_array);
Run Code Online (Sandbox Code Playgroud)


Par*_*man 7

使用 $request->merge($someArray)

你可以尝试这种方式..

你的第二个控制器的测试方法.

public function test(Request $request)
{
  $another_array = [];
  $another_array['eg'] = $test_array;
  $request->merge($another_array);

  .....
   app('\App\Http\Controllers\UserController')->store($request->get('eg'));
  ...
}
Run Code Online (Sandbox Code Playgroud)

你$test_array必须属于这种类型array

希望这能解决你的问题.