J'ai ajouté des horodatages cols dans la table DB,
public $timestamps = true;
protected $table = "allestates";
et je donne également true dans le modèle de la table.
public function up()
{
Schema::table('allestates', function (Blueprint $table) {
$table->timestamps();
});
}
Mais toujours quand j'ajoute les nouveaux cols d'horodatage des données sont Null? Une idée pourquoi c'est comme ça?
4 Réponses :
L'horodatage est nul, car vous n'utilisez peut-être pas laravel éloquent lorsque vous insérez des données.
$table->timestamp('created_at')->default(\DB::raw('CURRENT_TIMESTAMP'));
$table->timestamp('updated_at')->default(\DB::raw('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'));
Ou vous pouvez utiliser,
$model= new model; $model->column_one= 'John'; $model->save();
p>
essayez ceci:
public $timestamps = false;
// modèle
public function up()
{
Schema::table('allestates', function (Blueprint $table) {
$table->created_at = $table->freshTimestamp();
});
}
Si votre horodatage n'utilise pas éloquent, cela ne fonctionnera pas, vous devrez peut-être définir manuellement les horodatages sur votre instruction d'insertion
vous pouvez faire comme ceci
DB::table('user_languages')->updateOrInsert([
'id' => //user_id goes here
'created_at' => Carbon::now(),
'updated_at' => Carbon::now()
]);