我想更改notification
表名,因此我更改了迁移文件:
php artisan notification:table
Schema::create('member_notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data');
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
尝试在$table
类中使用Notification
:
protected $table = 'member_notifications';
但是当我尝试在数据库中存储通知时,我收到此错误:
SQLSTATE[42P01]: Undefined table: 7 ERROR: relation "notifications" does not exist
答案 0 :(得分:5)
如果要将默认的 notifications 表更改为自定义表,则应做以下三件事:
member_notifications
。运行迁移。创建模型,例如DatabaseMemberNotification
。从Illuminate\Notifications\DatabaseNotification
扩展它并覆盖属性
protected $table = 'member_notifications';
在默认的User
模型中,请添加以下功能:
public function notifications()
{
return $this->morphMany(DatabaseMemberNotification::class, 'notifiable')->orderBy('created_at', 'desc');
}
实际上,它将覆盖notifications()
特征中的HasDatabaseNotifications
方法。
注意:第一个参数应该是您的新模型类。
答案 1 :(得分:-2)
转到vendor / laravel / framework / src / Illuminate / Notifications / DatabaseNotification.php
并将protected $ table更改为所需的表名
在你的情况下
protected $table = 'member_notifications';