как назначить событие на ручную таблицу в laravel 5.6 - PullRequest
0 голосов
/ 12 ноября 2018

Я использую систему сообщений, которая имеет статус не выполнено - выполнено - выполнено, и я использую событие laravel для модели сообщений, поэтому при любом обновлении событие сохраняет строку в таблице message_notification, поэтому теперь я хочу использовать другое событие для таблицы message_notification, поэтому при каждой вставке в базу данных 1 будет отправляться уведомление администратору для уведомления о статусе сообщения об изменении. я делаю это до хранения уведомлений в базе данных, теперь мне нужно использовать событие laravel не на модели, а на таблице, созданной вручную, и я хотел знать, возможно ли это, и вот код, который я до сих пор имел здесь это событие с именем: MessageUpdated

 use Dispatchable, InteractsWithSockets, SerializesModels;

/**
 * Create a new event instance.
 *
 * @return void
 */
public function __construct(Message $message)
{
    $changer_id = Auth::user()->id;

    DB::table('message_notification')->insert([
        [
         'title' =>'Message Status has been changed',
         'status' =>  $message->status,
         'notification_status' => 0,
         'changer_id' => $changer_id,
         'created_at' => DB::raw('now()')
        ]
    ]);
}

и вот модель сообщения

class Message extends Model
{
    protected $dispatchesEvents = [
        "updated" => MessageUpdated::class
    ];
}

1 Ответ

0 голосов
/ 12 ноября 2018

Вы можете отправить событие вручную после вставки строки в базу данных. Посмотрите на этот раздел документации. В основном вам нужно сделать что-то вроде этого:

event(new YouEventClass($constructorParameters));
...