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() ]);