Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

273
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!