Отсутствуют обязательные параметры для Route и Controller [Route: codigos_barra.create], но я передаю параметры - PullRequest
0 голосов
/ 15 января 2020

У меня проблема, потому что когда нажата кнопка generate barcode, это выдает мне ошибку missing required parameters, несмотря на то, что параметр передан в маршрут и контроллер, как вы можете видеть.

В чем может быть проблема?

  1. метод контроллера, который отправляет массив на блейд

    $empresas = Empresa::all();
    $id_empresa = (int)$request->get('empresa');
    $equipos = Equipo::get_equipos_sin_barcode($id_empresa);
    return view('equipos.codigos_barra.index', compact('empresas', 'equipos'));
    
  2. Blade

    <div class="form-group" style="margin-left: 65%;">
        <form action="{{route('codigos_barra.create', $equipos)}}" class="form-inline" method="GET">
            <button class="btn btn-primary shadow" type="submit">
                <i class="fas fa-qrcode"></i>Generar QR
            </button>
        </form>
    </div>
    
  3. Маршрут

      Route::get('codigos_barra/{equipos}/create', 'CodigoBarraController@create')->name('codigos_barra.create')->middleware('auth','roles:1');
    
  4. Метод, который получает параметр

  public function create($equipos)
{

    return view('equipos.codigos_barra.create');
}
  1. dd ($ equipos)
   Illuminate\Database\Eloquent\Collection {#391 ▼
  #items: array:3 [▼
    0 => App\Equipo {#396 ▶}
    1 => App\Equipo {#376 ▶}
    2 => App\Equipo {#397 ▶}
  ]
}

Это первый массив equipo

Illuminate\Database\Eloquent\Collection {#391 ▼
  #items: array:3 [▼
    0 => App\Equipo {#396 ▼
      #fillable: array:17 [▼
        0 => "nombre_equipo"
        1 => "id_empresa"
        2 => "serie"
        3 => "marca"
        4 => "modelo"
        5 => "id_sede"
        6 => "id_tipo_equipo"
        7 => "foto"
        8 => "registro_invima"
        9 => "id_proveedor"
        10 => "consecutivo"
        11 => "descripcion"
        12 => "id_ubicacion"
        13 => "id_riesgo"
        14 => "id_usuario_crea"
        15 => "id_estado_equipo"
        16 => "ind_baja"
      ]
      #table: "equipos"
      #connection: "mysql"
      #primaryKey: "id"
      #keyType: "int"
      +incrementing: true
      #with: []
      #withCount: []
      #perPage: 15
      +exists: true
      +wasRecentlyCreated: false
      #attributes: array:28 [▶]
      #original: array:28 [▼
        "id" => 1
        "id_tipo_equipo" => 2
        "id_empresa" => 1
        "id_sede" => 5
        "id_ubicacion" => 1
        "id_proveedor" => 1
        "id_estado_equipo" => 1
        "id_usuario_crea" => 1
        "id_riesgo" => 1
        "nombre_equipo" => "LENSOMETRO"
        "consecutivo" => "VGR-000157"
        "descripcion" => "LENSOMETRO"
        "serie" => "39088839"
        "marca" => "TOPCON"
        "modelo" => "CL-200"
        "valor_compra" => null
        "fecha_compra" => null
        "registro_invima" => "N/A"
        "id_funcion" => null
        "estado" => "1"
        "ind_baja" => 0
        "ind_codigo_barras" => null
        "codigo_barras" => null
        "foto" => "public/p9JIbQvzch5gEizWK39NqwcGtvZIF2bL0m8twynM.jpeg"
        "created_at" => "2020-01-11 10:10:42"
        "updated_at" => "2020-01-11 10:10:43"
        "empresa" => "COVGR S.A.S"
        "estado_equipo" => "Activo"
      ]
      #changes: []
      #casts: []
      #dates: []
      #dateFormat: null
      #appends: []
      #dispatchesEvents: []
      #observables: []
      #relations: []
      #touches: []
      +timestamps: true
      #hidden: []
      #visible: []
      #guarded: array:1 [▶]
    }

1 Ответ

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

Я совершенно уверен, что ваша проблема связана с этой строкой

$equipos = Equipo::get_equipos_sin_barcode($id_empresa); // This must return an ID or slug to pass it later to the route {{route('codigos_barra.create', $equipos)}}

Поскольку $ equipos возвращает массив элементов, которые вы можете сделать

@foreach($equipos as $equipo) 
<div class="form-group" style="margin-left: 65%;">
   <form action="{{route('codigos_barra.create', $equipo->id)}}" class="form-inline" method="GET"> 
      <button class="btn btn-primary shadow" type="submit"> 
      <i class="fas fa-qrcode"></i>Generar QR 
      </button> 
   </form>
</div>
@endforeach
...