Данные уведомлений базы данных Laravel 11 не кодируются должным образомPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Данные уведомлений базы данных Laravel 11 не кодируются должным образом

Сообщение Anonymous »

Я пытаюсь сохранить уведомления в таблице базы данных уведомлений.

Код: Выделить всё

$n = new testNotification($company);
$user->notify($n);
Однако я продолжаю получать следующую ошибку:

Преобразование массива в строку
INSERT INTO

Код: Выделить всё

notifications (
id,
type,
data,
read_at,
notifiable_id,
notifiable_type,
updated_at,
created_at
)
ЗНАЧЕНИЯ
(
6242fed0 - db16 -4864 - bd68 - 853bc2ada748,
App \ Notifications \ testNotification,
?,?,
1,
App\Models\USER,
2024 -07 -24 12:00:13,
2024 -07 -24 12:00:13
)

Уведомления Slack работают нормально, но база данных продолжает выдавать ошибки.
Как я решил это было сделано путем добавления кодировки json вокруг функции toArray(), но мне это кажется неправильным, поскольку обычно laravel должен выполнять эту кодировку сам по себе, я не понимаю, почему атрибут данных не кодируется должным образом.

Код: Выделить всё

public function toArray(object $notifiable)
{
return [
'message' => $this->data->name,
];
}

// Updated version
public function toArray(object $notifiable): string
{
return json_encode([
'message' => $this->data->name,
]);
}
Я создал свою таблицу с помощью php artisan make:notifications-table

Код: Выделить всё

/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('notifications', function (Blueprint $table) {
$table->uuid('id')->primary();
$table->string('type');
$table->morphs('notifiable');
$table->text('data'); // Ensure this is TEXT or LONGTEXT
$table->timestamp('read_at')->nullable();
$table->timestamps();
});
}
Я также включаю Notible в свою модель пользователя.


Подробнее здесь: https://stackoverflow.com/questions/788 ... g-properly
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»