Отправка уведомления при наступлении события обновления - PullRequest
0 голосов
/ 18 марта 2020

Я могу поклясться, что мой код работал до сих пор. Я наблюдаю за моделью товара и хочу отправить уведомление по электронной почте в любое время, когда столбец status имеет значение udpdate и для него установлено значение loaded. Для этого я использую метод isDirty(), но мой код не работает, так как письмо не отправляется. Вот мой код

use App\Notifications\ItemAlert;
use App\User;
use App\Item;


class ItemObserver
{
    public function updated(Item $item)
    {
        // check if product status was updated to loaded
        if ($item->isDirty('status' === 'Loaded')) {

            // notify all users
            $users = User::all();

            foreach ($users as $user) {
                $user->notify(new ItemAlert($user, $item));
            }
        }
    }
}

Мне нужна помощь, чтобы это заработало.

1 Ответ

0 голосов
/ 18 марта 2020

Решено! Видимо isDirty() нужно второе условие, чтобы проверить, чего не было. Правильный код должен был быть

public function updated(Item $item)
    {
        // check if product status was updated to loaded
        if ($item->isDirty('status' === 'Loaded') && ($item->status === 'Loaded')) {

            // notify all users
            $users = User::all();

            foreach ($users as $user) {
                $user->notify(new ItemAlert($user, $item));
            }
        }
    }

Я надеюсь, что это поможет любому, кто сталкивается с этим решением.

...