2017-10-10 34 views
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'); 
    } 
} 

答えて

0

publicを削除した後$ isSubscribed;それは正常に機能し、保存されたモデルからです。

関連する問題