2017-03-29 15 views
1

私のコントローラは、このようなものです:ブロードキャストでlaravel通知を解決するにはどうすればいいですか? Laravel 5.3

<?php 
namespace App\Notifications; 
use Illuminate\Bus\Queueable; 
use Illuminate\Contracts\Queue\ShouldQueue; 
use Illuminate\Notifications\Messages\MailMessage; 
use Illuminate\Notifications\Notification; 
use Illuminate\Contracts\Broadcasting\ShouldBroadcast; 
class MessageInsert extends Notification implements ShouldBroadcast, ShouldQueue 
{ 
    use Queueable; 
    private $data; 
    public function __construct($data) 
    { 
     $this->data = $data; 
    } 
    public function via($notifiable) 
    { 
     return ['broadcast','database','mail']; 
    } 
    public function toArray($notifiable) 
    { 
     return [ 
      'id'  => $this->data->id, 
      ... 
     ]; 
    } 
    public function toMail($notifiable) 
    { 
     return (new MailMessage) 
      ->greeting('Hello!') 
      ->line('...') 
      ->action('...') 
      ->line('Thank you!'); 
    } 
} 

次のようにした場合::

public function add($param) 
{ 
    ... 
    $message = Message::create([ 
     ... 
     'created_at'   => Carbon::now(), 
     'updated_at'   => Carbon::now() 
    ]); 
    Notification::send($notify_to, new MessageInsert($message)); 
    dd($message); 
    return $message; 
} 

マイMessageInsertはこのようなものです

リターン[ '放送'、 'データベース' '郵便物'];

dd($message);の結果がエラー

しかし、このような場合です:

リターン[ 'データベース'、 'メール'];私は、ブロードキャストを使用するときにエラーが発生したのはなぜ

dd($message);の結果は$message

の配列ですか?

答えて

1

toBroadcast関数を追加しましたか?

public function toBroadcast($notifiable) { 
return new BroadcastMessage([ 'invoice_id' => $this->invoice->id, 'amount' => $this->invoice->amount, ]); 
} 
関連する問題