Ошибка события Laravel, мало аргументов для работы - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь передать событие без успеха.Я не могу найти, в чем проблема, и у меня нет идей.Я получаю ошибку.

"Too few arguments to function App\Events\ConversationUpdate::__construct(),
1 passed in /app/Events/ConversationUpdate.php on line 36 and exactly 2 expected"

То, что я пытаюсь сделать, - это когда сообщение создается, транслировать событие в чат и обновлять чат новым сообщением в режиме реального времени.

вот мой код:

Контроллер:

public function newConversationMessage(Thread $conversation, Request $request)
    {
        $user = Auth::user();
        $message = Message::create([
            'thread_id' => $conversation->id,
            'user_id' => $user->id,
            'body' => $request->body,
        ]);
        $message->user; 
        broadcast(new ConversationUpdate($conversation->id, $message));    
        return $message;
    }

Событие:

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class ConversationUpdate implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $conversationId;


    public $message;


    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($conversationId, $message)
    {
        $this->conversationId = $conversationId;
        $this->message = $message;
    }

    public function broadcastOn()
    {
        return new ConversationUpdate('conversation-'.$this->conversationId.'-updated');
    }
}

1 Ответ

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

на функции broadcastOn() вы должны вернуть что-то вроде этого

return new PrivateChannel('conversation-'.$this->conversationId.'-updated');

, а не другой экземпляр того же класса, в котором вы находитесь (ошибка зависит от одного аргумента, передаваемого в конструкторе)

...