Подход 1: разрешение на стороне клиента
Наиболее надежным подходом было бы то, что описал @ExohJosh: отправлять только тип события вместе с идентификатором, чтобы клиент (наиболее вероятный JavaScript) мог получить обновленную запись через отдельный REST (или любой другой) API.
public function broadcastWith()
{
return [
'id' => $this->post->id,
];
}
Подход 2: Сокращение полезной нагрузки
Альтернативным (и более простым) подходом будет отправка только тех данных, которые требуются клиенту (те, которые вы выяснили сами @sarotnem). Однако этот подход безопасен только в том случае, если вы точно знаете, что отправляемые вами атрибуты ни в коем случае не могут превышать ограничение в 10 КБ. Это может быть обеспечено путем проверки входных данных, ограничений на столбцы БД или других средств.
При выборе этого подхода обязательно учитывайте размер любых отношений, которые могут быть загружены в модель, в ваши расчеты.
Хороший способ определить «внешнее представление» модели - это Ресурсы API Laravel. Они могут сделать ваш код похожим на это:
public function broadcastWith()
{
return [
'post' => new \App\Http\Resources\PostResource($this->post),
];
}
, где App\Http\Resources\PostResource
может быть:
class PostResource extends JsonResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'title' => $this->title,
'body' => $this->body,
];
}
}