ciao!
premetto che ho sempre usato le stored procedure e mai in model in laravel.
l'ultimo cliente, invece, vuole usare i model.
con un db già creato.
quindi io ho creato il model che dovrebbe rappresentare la struttura dell tabella:
codice:
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Fornitori extends Model {
protected $table = 'fornitori';
const CREATED_AT = 'forn_data_aggiunta';
const UPDATED_AT = 'forn_data_modifica';
protected $primaryKey = 'forn_id';
public $incrementing = true;
protected $fillable = [
'forn_id',
'forn_codice',
'forn_nome',
'forn_data_aggiunta',
'forn_data_modifica'
];
}
poi nel controller ho aggiunto questa funzione:
codice:
public function add(Request $req) {
$data = $req->json()->all();
if (!empty($data)) {
try {
$today = date("Y-m-d H:i:s");
Fornitori::upsert(
[trim($data['forn_codice']), trim($data['forn_nome']), $today, $today],
['forn_nome', $today],
['forn_codice']
);
} catch (QueryException $ex) {
return response()->json([
'res' => 'ko',
'message' => $ex->getMessage()
]);
}
return response()->json(array(
"res" => "ok",
"message" => 'Operazione avvenuta con successo!'
));
} else {
return response()->json(array(
"res" => "ko",
"message" => "Dati mancanti!"
));
}
}
ma ottengo questo errore che proprio non capisco:
codice:
{
"res": "ko",
"message": "SQLSTATE[42S22]: Column not found: 1054 Unknown column '0' in 'field list' (SQL: insert into `fornitori` (`forn_data_aggiunta`, `forn_data_modifica`, `0`, `1`, `2`, `3`) values (2023-09-23 17:13:39, 2023-09-23 17:13:39, cod1, codice 1, 2023-09-23 17:13:39, 2023-09-23 17:13:39) on duplicate key update `forn_codice` = values(`forn_codice`), `forn_data_modifica` = values(`forn_data_modifica`))"
}
un aiuto??