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)
使用 $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
希望这能解决你的问题.