Могу ли я передать многомерный массив по маршруту laravel? - PullRequest
0 голосов
/ 16 января 2020
  1. Это форма, которая содержит кнопку, которая отправляет сообщение, и через который я отправляю многомерный массив с именем $ equipos

      <div class="form-group" style="margin-left: 65%;">
        <form action="{{route('codigos_barra.create', $equipos)}}" class="form-inline" method="POST">
            <button class="btn btn-primary shadow" type="submit">
                <i class="fas fa-qrcode"></i>&nbsp;&nbsp;&nbsp;Generar QR
            </button>
        </form>
    </div>
    
  2. Это the route

    Route::get('codigos_barra/create/{equipos}', 'CodigoBarraController@create')->name('codigos_barra.create')->middleware('auth','roles:1');
    
  3. Это ошибка

    Отсутствуют обязательные параметры для [Route: codigos_barra.create] [URI: codigos_barra / create / {equipos }]. (Представление: C: \ laragon \ www\pmei \ resources \ views \ equipos \ codigos_barra \ index.blade. php)

1 Ответ

0 голосов
/ 16 января 2020

Вы можете сделать это, это не относится к laravel или даже PHP. Это просто, как вы отправляете переменные массивов через HTML.

Вы должны быть знакомы с одномерным массивом <input name="arrayName[]" />. Вы также можете дать индекс для вашей переменной

<input type="hidden" name="equipos[0][0]" value="1" />
<input type="hidden" name="equipos[0][1]" value="2" />
<input type="hidden" name="equipos[0][2]" value="3" />
<input type="hidden" name="equipos[1][0]" value="4" />
<input type="hidden" name="equipos[1][1]" value="5" />
<input type="hidden" name="equipos[1][2]" value="6" />
<input type="hidden" name="equipos[2][0]" value="7" />
<input type="hidden" name="equipos[2][1]" value="8" />
<input type="hidden" name="equipos[2][2]" value="9" />

Эти входы будут отправлять массив equipos как

equipose => | 1  2  3 |

            | 4  5  6 |

            | 7  8  9 |

В вашем контроллере вы можете восстановить его как любой другой вход

$equipos = request()->input('equipos', []);
// or
$equipos = request()->get('equipos');

Другое решение было бы преобразовать ваш массив в json и json_decode() в контроллере

<input type="hidden" name="equipos_json" value="{{json_encode($equipos)}}" />
$equipos = json_decode(request()->input('equipos', ''), true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...