#arrays #laravel #laravel-notification
#массивы #laravel #laravel-уведомление
Вопрос:
Я пытаюсь отправлять уведомления нескольким пользователям на основе нескольких условий. Если выполняется одно или несколько условий, я хотел бы добавить этих пользователей в массив пользователей, которым будут отправляться уведомления. Проблема в том, как мне добавить всех пользователей из каждого условия в конечный массив?
У меня есть пользователи — $data['salesman']
в моем случае — которые добавляются из входных данных. Тогда у меня есть больше пользователей, которых я хочу добавить в массив, которые являются статическими на основе $data['branch']
поля формы.
// Find selected salesman to send notifications
$users = User::whereIn('name', $data['salesman'])->get();
// Send to appropriate people at selected branch
if($data['branch'] === 'Richmond') {
$users = User::whereIn('name', ['Jane Doe', 'John Doe'])->get();
}
// Send notification to proper user(s)
Notification::send($users, new TrafficCreated($traffic));
Спасибо за любую помощь, которую вы можете предоставить.
Ответ №1:
Вы можете объединять коллекции вместе с merge
помощью метода.
Что-то вроде:
$users = User::whereIn('name', $data['salesman'])->get();
if($data['branch'] === 'Richmond') {
$branch_users = User::whereIn('name', ['Jane Doe', 'John Doe'])->get();
}
// todo: add other conditions for different branches here
if (isset($branch_users)) {
$users->merge($branch_users);
}
Notification::send($users, new TrafficCreated($traffic));
Комментарии:
1. Спасибо @brice. Я не думал искать слияние. Отлично работает.
2. Потрясающе! Можете ли вы принять ответ для других, которые могут найти это в будущем?