Laravel 5.3 通知機能を使用すると、通知が次のようにユーザーに送信されることがわかります。
$user->notify(new InvoicePaid($invoice));
私が信じている$user
のは、通知対象のエンティティです。まだアカウントを持っていないユーザーに通知を送信したい場合はどうすればよいですか? 私のアプリでは、ユーザーが招待状を友達に送信して参加します。Laravel の通知を使用して、まだアカウントを持っていないユーザーに招待コードを送信しようとしています。
ユーザーが誰かを招待すると、そのデータは次のように Invite Model に保存されます。
class Invite extends Model
{
protected $table = 'invites';
protected $fillable = array('name', 'email', 'invite_code', 'expires_at', 'invited_by');
protected $dates = ['expires_at'];
}
次のように、notify を使用して Invite モデルに通知を送信できると考えました。
$invite = Invite::find($inviteId);
$invite->notify(new InvitationNotification(ucfirst($invite->name), $invite->invite_code, $invite->expires_at));
しかし、上記は機能しません。エラーが発生します:
Call to undefined method Illuminate\Database\Query\Builder::notify()
だから私の質問は:
ユーザーモデルのみに通知を送信できますか?
まだアカウントを持っていない新しいユーザーに通知を送信する方法はありますか?
これらの場合、Notification の代わりに Laravel の Mailable クラスを使用するしかありませんか?