Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

358
Vistas
Laravel - htmlspecialchars() espera que el parámetro 1 sea una cadena, objeto dado

me sale este error:

 htmlspecialchars() expects parameter 1 to be string, object given

Estoy usando en el controlador:

 $data = '{"pr":{"code":"1"},"ac":[[{"icon":"web","action":"link","url":"asd"}]]}' $newData = json_decode($data);

Y lo envío a la vista como matriz: 'data' => $newData Y cuando trato de usar $data en la vista, me da ese error

Ya intenté usar $data->ac OR $data['ac'] pero sigue igual... ¿Ayuda, por favor?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Cuando usa un blade echo {{ $data }} , escapará automáticamente de la salida. Solo puede escapar de cadenas. En sus datos, $data->ac es una matriz y $data es un objeto, ninguno de los cuales se puede repetir como está. Debe ser más específico sobre cómo deben generarse los datos. El aspecto exacto depende completamente de lo que estés tratando de lograr. Por ejemplo, para mostrar el enlace, necesitaría hacer {{ $data->ac[0][0]['url'] }} (no estoy seguro de por qué tiene dos matrices anidadas, pero solo estoy siguiendo su estructura de datos) .

 @foreach($data->ac['0'] as $link) <a href="{{ $link['url'] }}">This is a link</a> @endforeach
about 4 years ago · Santiago Trujillo Denunciar

0

si su verdadera intención es enviar la matriz completa desde el html al controlador, puede usar el siguiente código:

de la hoja.php:

 <input type="hidden" name="quotation" value="{{ json_encode($quotation,TRUE)}}">

en el controlador

 public function Get(Request $req) { $quotation = array('quotation' => json_decode($req->quotation)); //or return view('quotation')->with('quotation',json_decode($req->quotation)) }
about 4 years ago · Santiago Trujillo Denunciar

0

Podrías usar serialize

 <input type="hidden" name="quotation[]" value="{{serialize($quotation)}}">

Pero la mejor manera en este caso es usar el método json_encode en su blade y json_decode en el controlador.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda