在我的项目中使用 Laravel 框架和名为 Tinker 的 REPL,我想将请求对象设置为与通过浏览器发出一些真实 HTTP 请求时相同的状态。
当我使用转储请求时
dd($request);
我收到很多数据,$request
比如标题、表单输入数据等等。
我想$request
在 Tinker REPL 中接收相同的数据。
如何从命令行在 Tinker 中模拟 HTTP 请求?
在我的项目中使用 Laravel 框架和名为 Tinker 的 REPL,我想将请求对象设置为与通过浏览器发出一些真实 HTTP 请求时相同的状态。
当我使用转储请求时
dd($request);
我收到很多数据,$request
比如标题、表单输入数据等等。
我想$request
在 Tinker REPL 中接收相同的数据。
如何从命令行在 Tinker 中模拟 HTTP 请求?
您应该能够实例化一个请求对象,然后使用 replace 将一些输入数据放入其中。像这样的东西应该在修补程序中工作......
>> $r = new Illuminate\Foundation\Http\FormRequest()
>> $r->replace(['yada' => 'bla bla bla'])
>> $r->yada
那应该输出bla bla bla。
请求类有一些方法来启动它,名称从创建开始......并且创建方法允许使用手动给定的参数(如 url、方法和其他可选参数)来启动它:
Illuminate\Foundation\Http\FormRequest::create('http://your-url', 'METHOD', ...)
所以你可以从 REPL 中使用它来玩你的控制器并像你来自某些路线一样启动它们