Laravel: 8.51 Nova: 3.24 Versión de PHP: 7.4.20
Tengo un problema al tratar de resolver esta situación:
Tengo una acción que usa un KeyValue para manejar una matriz de pares: el campo "product_id" y "cantidad" se ve así:
KeyValue::make(__('Order details'), 'details') ->rules('json'),también en el modelo agregué cast:
protected $casts = [ 'details' => 'array', ];Lo convierto a json y lo almaceno en una base de datos así
foreach ($fields->details as $key => $value) { $order_details[$key] = $value; } //(...) DB::table('orders')->InsertGetId([ 'details' => json_encode($order_details), ]);Finalmente, mi campo json en la base de datos se ve así:
{"1":"6","2":"7","3":"8"}Hasta este punto todo funciona muy bien.
Ahora quiero cambiar lo que veo como product_id (en el ejemplo anterior 1, 2, 3) para que sea de otro recurso como proudTo('products')
Estaba considerando cómo poder usar BelongsTo o Select en la parte clave del campo KeyValue. Probé algunas formas de mostrarlo de alguna manera en el campo de pila como:
Stack::make('Details', [ Text::make('details', function () { return $this->details($key); // how to properly read $key from json in fields? }), Text::make('amount',function () { return $this->details($value); // how to properly read $value from json in fields? }), ]),o
BelongsTo::make(__('Product'), 'user', Products::class) ->withMeta([ 'belongsToId' => $this->details($key), // again i dont know how to properly read $key here from json. ]),