Я пытаюсь получить модель, когда она была создана. Проблема в том, что событие запускается, но я ничего не получаю от внешнего интерфейса, поэтому я предполагаю, что это всего лишь проблема внешнего интерфейса, поэтому позвольте мне показать код:
Давайте начать с бэкэнда:
Событие:
<?php
namespace App\Events;
use Illuminate\Broadcasting\Channel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Queue\SerializesModels;
use App\Homework;
class HomeworkCreated implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $homework;
public function __construct($homework)
{
$this->homework = $homework;
}
public function broadcastOn()
{
return new Channel('subject.' . $this->homework->subject->id);
}
}
Вот как я запускаю его в своем контроллере:
$homework = new Homework([
'subject_id' => $request->subject_id,
'user_id' => auth()->user()->id,
'title' => $request->name,
'image' => $path,
'description' => $request->description,
'duedate' => $request->date
]);
$homework->save();
event(new HomeworkCreated($homework));
Теперь, как мы видим, он возвращается на канал, который на моем Laravel эхо-сервере отображается как:
Channel: homewrk_database_subject.9 // This confuses me a bit
Event: App\Events\HomeworkCreated
Когда я говорю «это меня смущает», я имею в виду, что я действительно не знаю, является ли маршрут буквально это, так что теперь мы подошли к моему интерфейсу (реагировать-native):
render() {
const echo = new Echo({
host: 'ws://127.0.0.1:6001',
broadcaster: 'socket.io',
client: Socketio,
});
echo
.channel('homewrk_database_subject.', this.props.navigation.getParam('id'))
.listen('HomeworkCreated', ev => this.homeworks.push(ev)); // trying to add the response to the array.
Этот код находится прямо перед return
, так как это класс, а не функциональный компонент.
Моя цель - показать добавление новой модели в массив извлеченных элементов, чтобы отобразить ее