Laravel, получить идентификатор по запросу от входного лезвия - PullRequest
0 голосов
/ 10 июля 2019

У меня есть много <input>, например:

<input type="number" id="{!! $item->id !!}" name="function_count[]" value="{{ $item->value }}"

В контроллере я могу получить массив каждого входного значения с помощью:

$inputs = $request->input('function_count');

Но также мне нужнополучить id="{!! $item->id !!}" в том же массиве, потому что мне нужны данные, связанные (идентификатор и значение) в контроллере.Как я мог это сделать?

1 Ответ

1 голос
/ 11 июля 2019

Вы не можете передать два значения через одно поле ввода. Однако для достижения того, чего вы хотите, у вас могут быть разные подходы.

Рекомендуемый подход:

Полагаю, у вашего function_count[] есть id. Следовательно, вы можете создать ассоциативный массив в качестве входных данных name следующим образом:

<input type="number" name="function_count[{!! $item->id !!}]" value="" />

Позже вы можете,

$inputs = $request->input('function_count');
foreach($inputs as $id=>$value){
    // $id being the content of $item->id
    // $value being the content of value=""
}

Подход № 2:

Если ваш id="{!! $item->id !!}" имеет значение на стороне клиента и вы хотите сохранить атрибут, вы также можете объединить данные непосредственно перед отправкой формы следующим образом:

$("form").submit( function () {
    $(this).find("input[type=number]").each(function(){
        $(this).val($(this).attr("id") + ":" + $(this).val());
    });
    return;
});

Позже вы можете,

$inputs = $request->input('function_count');
foreach($inputs as $input){
    $contents = explode(":",$input);
    // $contents[0] being the content of $item->id
    // $contents[1] being the content of value=""
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...