0
モデルを更新しようとしていますが、フィールドにデフォルト値はありませんが、保存する前に設定しています私のプラグインの起動方法、それは値がないと考えて、なぜ私はわからない、私は詳細を概説している場所の下のコードを参照してくださいでは。すべてのヘルプは大october cms "SQLSTATE [HY000]:一般エラー:1364フィールドにデフォルト値がありません
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();
}
});
}
モデル
plugin.phpを高く評価しました
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;
}
スキーマ
<?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');
}
}