【发布时间】:2019-12-04 04:42:34
【问题描述】:
我非常卡在这个错误上,几乎这是运行良好的代码
$data = ['tipo'=>1];
$respuesta = $this->json('POST','api/endpoint',$data);
$respuesta->assertJsonFragment(['success' => 1]);
这是一个给出错误的错误致命错误:具有类类型提示的参数的默认值只能为 NULL
$data = ['data' => ['tipo'=>1]];
$respuesta = $this->json('POST','api/endpoint',$data);
$respuesta->assertJsonFragment(['success' => 1]);
第一个运行完美,标记断言,第二个,抛出该错误,现在,我尝试使用 post(),但无济于事,发生完全相同的事情,所以我迷路了,我看不出多维数组可以做到这一点,虽然这个特定的 api 不使用多维数组,但我还有很多其他的使用
完整的跟踪
Fatal error: Default value for parameters with a class type hint can only be NULL in C:\laragon\www\gerinpro2\vendor\symfony\yaml\Yaml.php on line 52
Fatal error: Uncaught exception 'Illuminate\Contracts\Container\BindingResolutionException' with message 'Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable.' in C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Container\Container.php:895
Stack trace:
#0 C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Container\Container.php(735): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...')
#1 C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Container\Container.php(608): Illuminate\Container\Container->build('Illuminate\\Cont...')
#2 C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Container\Container.php(575): Illuminate\Container\Container->resolve('Illuminate\\Cont...')
#3 C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Foundation\Application.php(728): Illuminate\Container\Container->make('Illuminate\\Cont...')
#4 C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Foundation\Bootstrap\HandleEx in C:\laragon\www\gerinpro2\vendor\laravel\framework\src\Illuminate\Container\Container.php on line 895
【问题讨论】:
-
"这个特定的 api 不使用多维数组" 那你为什么要传递它呢?为什么不把它传递给
$data['data'],它和你在第一次工作、通话中使用的一样? -
控制器动作的路由配置是什么样的,方法签名是什么,即被调用的方法接受什么参数?
-
哦,主要是因为,我确实有其他需要多维数组的 api,事实上,我的大多数创建方法都是这样工作的,我有一个数组数组,主要用于 $data['data '] 数组,基本上看起来像这样 {data => [{field1 => 1 , field 2 => 2, etc etc}]
-
哦,@dbrumann 路由很简单,尽管我没有使用中间件进行测试,所以在这段代码上方我有 withoutMiddleware() 方法
Route::post('api/endpoint/','Roles_plan_gestionController@capturar') ->middleware('auten:---');使用数组数组的方法,接受结构为 { 'data' => [{field 1: value, field2: value }] 我的控制器所做的是在控制器上获取数组的“数据”部分并在其上运行 json_decode 然后将其发送到相应的方法模型,奇怪的部分是这在其他所有方面都可以正常工作,但 PHPunit 似乎有问题 -
你能发布完整的堆栈跟踪吗?
标签: php arrays laravel-5 phpunit