J'essaie de mettre à jour un modèle mais il est complétant le champ n'a pas de valeur par défaut, mais j'en mets un avant de sauvegarder dans la méthode de démarrage de mon plugin voir ci-dessous le code où je viens d'exposer les détails, je ne sais pas pourquoi il pense qu'il n'y a pas de valeur. Toute aide grandement appréciéeoctobre cms "SQLSTATE [HY000]: Erreur générale: 1364 Le champ n'a pas de valeur par défaut
plugin.php
public function boot()
{
// RainlabUser::extend(function ($model) {
// $model->hasOne['newsletter'] = [
// 'CG\Newsletter\Models\Newsletter', 'table' =>
// 'cg_newsletter', 'key' => 'user_id'
// ];
// });
Event::listen('eloquent.updating: RainLab\User\Models\User', function(){
$data = post();
if (array_key_exists('email', $data)) {
Log::debug(__FUNCTION__,[$data['email']]);
$user = RainlabUser::findByEmail($data['email']);
Log::debug(__FUNCTION__,[$user->id]);
$newsletter = new Newsletter();
$newsletter->isSubscribed = 1;
$newsletter->user_id = $user->id;
Log::debug(__FUNCTION__,[$newsletter]);
$newsletter->save();
}
});
}
modèle
use Model;
/**
* Model
*/
class Newsletter extends Model {
/**
* Indicates if the model should be timestamped.
*
* @var bool
*/
public $timestamps = false;
protected $primaryKey = 'id';
/**
*
* @var string The database table used by the model.
*/
public $table = 'cg_newsletter';
public $belongsTwo = [
'user' => ['rainlab/user/models/user']
];
public $isSubscribed;
}
schéma
<?php namespace CG\Newsletter\Updates;
use Schema;
use October\Rain\Database\Updates\Migration;
class BuilderTableCreateCgNewsletter extends Migration
{
public function up()
{
Schema::create('cg_newsletter', function($table)
{
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('user_id')->unsigned()->index();
$table->tinyInteger('isSubscribed');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('CASCADE');
});
}
public function down()
{
Schema::dropIfExists('cg_signshop_menus');
}
}