deadloop
@deadloop
Активно осваиваю PHP

Как передать массив методом Post?

Добрый день. Пишу тест для контроллера,

Контроллер
public function update(Request $request) {

        $input = $request->get('category', []);
        foreach (Category::all() as $category) {
            $category->roles()->sync(Arr::get($input, $category->id, []));
        }
        dd($input);
        return view('home');
    }


Тест
/** @test */
public function test_admin_user_can_edit_categories_roles()
{
	$category = \App\Models\Category::factory()->create(['id' => 1]);
	$role = \App\Models\Role::factory()->create(['id' => 1]);
	
	$data = [
            '1' => ['1' => '1'],
            '2' => ['1' => '1'],
        ];
		
	$this->actingAs(\App\Models\User::factory()->create(['role_id' => 1]));
    $this->post('/admin/connections', $data);
	
	$this->assertDatabaseHas('categories_roles', [
            'categories_id' => $category->id,
            'roles_id' => $role->id
        ]);
}


При прохождении теста вылезают толко квадратные скобки ([]) и все. Как правильно передать массив?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
delphinpro
@delphinpro Куратор тега Laravel
frontend developer
$data = [
  'category' => [
    '1' => ['1' => '1'],
    '2' => ['1' => '1'],
  ],
];
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы