Я пытаюсь использовать Notifiable Trait of Laravel в модели, у которой нет атрибута email (фактически он payer_email )
поэтому я углубился в код уведомлений и обнаружил, что он использует routeNotificationFor метод из RoutesNotifications черта, поэтому я решил переопределить его для желаемого поведения.
Исходный код метода:
public function routeNotificationFor($driver)
{
if (method_exists($this, $method = 'routeNotificationFor'.Str::studly($driver))) {
return $this->{$method}();
}
switch ($driver) {
case 'database':
return $this->notifications();
case 'mail':
return $this->email;
case 'nexmo':
return $this->phone_number;
}
}
, и я переопределил его в моей Платежной модели следующим образом:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Str;
use Illuminate\Notifications\Notifiable;
use App\Notifications\PaymentNotify;
class Payment extends Model
{
use Notifiable;
public function routeNotificationFor($driver)
{
if (method_exists($this, $method = 'routeNotificationFor'.Str::studly($driver))) {
return $this->{$method}();
}
switch ($driver) {
case 'database':
return $this->notifications();
case 'mail':
return $this->payer_email;
case 'nexmo':
return $this->phone_number;
}
}
}
Но когда япроверить это, не работает.(Я использовал черту Notifiable на двух других моделях, и она работает, без переопределения ...)