我试图扩展十月cms用户插件listin到注册事件,并获取发布数据,并写入用户和通讯订阅时事通讯表保存时说“SQLSTATE [42S22]:未找到列:1054'字段列表'中的未知列'updated_at'(SQL:插入到cg_newsletter
(updated_at
,created_at
)values。”我不确定它为什么抱怨创建或更新的日期在模型中不创建它们,我不试图更新这些列。任何帮助极大的赞赏。十月cms扩展插件与事件模型没有正确实例化
模型
<?php
namespace CG\Newsletter\Models;
use Model;
/**
* Model
*/
class Newsletter extends Model {
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;
}
plugin.php
<?php
namespace CG\Newsletter;
use System\Classes\PluginBase;
use Log;
use Event;
use Rainlab\User\Components\Account as RainlabAccount;
//use Rainlab\User\models\user as RainlabUser;
use Request;
use Illuminate\Support\Facades\Input;
use Rainlab\user\Models\User as RainlabUser;
use Auth;
use CG\Newsletter\Models\Newsletter;
class Plugin extends PluginBase {
public function registerSettings() {
return [
'settings' => [
'label' => 'Newsletter',
'description' => 'Newsletter subscription',
'category' => 'misc',
'icon' => 'icon-shopping-basket',
'class' => 'CG\Newsletter\Models\Settings',
'order' => 500,
'keywords' => 'newsletter settings',
'permissions' => [
'admin'
]
]
];
}
public function boot()
{
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->belongsTwo = $user->id;
$newsletter->isSubscribed =1;
$newsletter->save();
}
});
}
}
迁移文件
<?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');
}
}