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

274
Visualizações
Accede a datos json con Laravel e Inertia

Tengo un formulario simple con 1 campo de entrada y un botón de envío.

Todo lo que hace es obtener la entrada del usuario, compararla con una API externa y enviar ambos registros a la base de datos.

La respuesta de la API externa es formato JSON, como este, pero solo quiero recuperar el campo de text en las choices

 { "id": "123", "object": "tc", "created": 1655642237, "model": "text-code", "choices": [ { "text": "paragraph text here", "index": 0, "logprobs": null, "finish_reason": "length" } ] }

Esto se almacena en una variable $complete , por lo que cuando accedo a ella en la vista, obtengo todo esto sin forma de apuntar solo a elementos específicos.

este es mi controlador

 public function index() { $prompts = Writer::all(); return Inertia::render('Writer', [ 'prompts' => $prompts ]); } public function store(Request $request) { $complete = $start->complete([ 'engine' => '002', 'prompt' => $request->input('inputText') ]); $data = json_decode($complete, true); Validator::make($request->all(), [ 'inputText' => 'required|min:5|max:255|string', ])->validate(); Writer::create([ 'request' => $request->input('inputText'), 'response' => $data['choices'] ]); return redirect()->back()->with('message', 'success.'); }

Tengo que pasar $complete al método create() porque pasar $data da un error

Conversión de matriz a cadena

y

El objeto de la clase stdClass no se pudo convertir en una cadena

Sin embargo, si return $data['choices'] justo después de la variable, obtengo los campos que solo están en choices

La vista es bastante simple.

 <div class="card w-100 bg-light mt-4 mb-4" v-for="prompt in $page.props.prompts"> <div class="card-body"> <h5 class="card-title">{{ prompt.request }}</h5> <p class="card-text">{{ prompt.response }}</p> </div> </div>
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Para acceder a los datos en $choices -array (es una matriz, no una cadena, y es por eso que obtuvo un error en consecuencia), cambie las líneas correspondientes en su store -método a

 Writer::create([ 'request' => $request->input('inputText'), 'response' => $data['choices'][0]['text'] ]);

Pero tenga en cuenta que $data[ 'choices' ] podría estar vacío, por lo que antes de almacenar cualquier valor, asegúrese de verificar su existencia y proporcione un valor predeterminado, por ejemplo

 $text = $data['choices'][0]['text'] ?? 'my-default-value';
about 4 years ago · Juan Pablo Isaza 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