2017-01-11 1 views
0

Я пытаюсь сделать динамическую форму редактирования для нескольких элементов одновременно в Laravel. Для этого я использую вход именования:Laravel сохраняет сглаживание моего входного массива

name="groups[][name]" 

...

name="groups[][description]" 

по какой-либо причине, пытаясь обработать эту форму в Laravel всегда приводит к входу «групп», будучи плоский массив. Принести комплект с:

$request->input('groups'); 

and var_dump shows: 

    array(
    10 
) 
    { 
    [0] => array(
     1 
    ) 
     { 
     ["name"] => string(15) "Baseball Cardsf" 
     } 

    [1] => array(
     1 
    ) 
     { 
     ["description"] => string(22) "Baseball Cards Section" 
     } 

    [2] => array(
     1 
    ) 
     { 
     ["id"] => string(1) "6" 
     } 

    [3] => array(
     1 
    ) 
     { 
     ["willDelete"] => string(5) "false" 
     } 

    [4] => array(
     1 
    ) 
     { 
     ["hasUpdated"] => string(4) "true" 
     } 

    [5] => array(
     1 
    ) 
     { 
     ["name"] => string(12) "Board Gamesf" 
     } 

    [6] => array(
     1 
    ) 
     { 
     ["description"] => string(19) "Board Games Section" 
     } 

    [7] => array(
     1 
    ) 
     { 
     ["id"] => string(1) "5" 
     } 

    [8] => array(
     1 
    ) 
     { 
     ["willDelete"] => string(5) "false" 
     } 

    [9] => array(
     1 
    ) 
     { 
     ["hasUpdated"] => string(4) "true" 
     } 
    } 

Является ли это ошибка в моем форматирования, или это касаемая Laravel?

Update

Выпуску форматирования. Использование $ loop-> index для заполнения пустых [] исправлено.

ответ

0

Да у вас есть ошибки в форматировании, каждый раз, когда вы называете ваш вклад groups[] индекс ввода увеличивается на 1, вы должны назвать свои входы, как это:

1st item 
name="groups[0][name]" 
name="groups[0][description]" 

2nd item 
name="groups[1][name]" 
name="groups[1][description]" 

Вы можете добавить итератор или что-то.

+1

Я попытался сделать это, используя $ loop-> index, и он работал как шарм. Благодаря! –

0

Вы можете взять временный массив и установить в него все ключи, такие как name, description и т. Д. И, наконец, назначить их группам.

например.

foreach ($items as $key=>$item){ 
    $t = array(); 
    $t["name"] = $item["name"]; 
    $t["description"]= $item["description"]; 
    $groups[] = $t; 
} 
Смежные вопросы