Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

174
Visualizações
Laravel intersect no obtendrá entrada

Tengo una intersección en mi método de actualización:

 $inputs = $request->intersect('message','name','email','is_read');

Si envío una solicitud de actualización donde is_read=0, la intersección devuelve una matriz vacía. Funciona bien con cualquier otra cosa (falso, 1, etc.)

¿Algun consejo?

¡Gracias!

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

ALERTA Intente pasar a otra implementación y deje de usar el método intersect() , se eliminará de las futuras versiones de Laravel: Enlace

SI quiere decir que falta la clave is_read en la matriz final (y no que toda la matriz está vacía, vea mi comentario), esto se debe a la implementación del método intersect() .

El método intersect simplemente envuelve el método only() de la clase Illuminate\Http\Request y realiza un array_filter sobre el resultado.

Esta es la implementación:

 /** * Intersect an array of items with the input data. * * @param array|mixed $keys * @return array */ public function intersect($keys) { return array_filter($this->only(is_array($keys) ? $keys : func_get_args())); }

En su caso, podemos descomponer el código así:

paso 1

 $results = $request->only('message','name','email','is_read');

En este punto, $results es

 Array ( [message] => message [name] => name [email] => email [is_read] => 0 )

Sin embargo, en el paso 2

paso 2

 $filteredResults = array_filter($results);

El resultado se convierte

 Array ( [message] => message [name] => name [email] => email )

Y esto se debe a cómo funciona array_filter . Espera una matriz como primer parámetro, luego una devolución de llamada opcional (utilizada para filtrar la matriz) y una bandera.

De referencia php

¿Qué sucede cuando no se proporciona devolución de llamada (como en este caso?)

Si no se proporciona una devolución de llamada, se eliminarán todas las entradas de la matriz iguales a FALSO (ver conversión a booleano ).

Si observa el enlace que se convierte en booleano , verá que se supone que 0 (cero) es FALSO y, por ese motivo, se elimina de la matriz.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda