Как я могу отправить уведомление в Laravel пользователю, который в данный момент не вошел в систему? - PullRequest
0 голосов
/ 11 марта 2020

Я создаю приложение типа Поиск работы. Существует два типа пользователей, ищущих работу и работодателей, каждый из которых имеет свою роль. Когда Работодатель входит в систему, он может просматривать профили кандидатов и запрашивать интервью. Он может выбрать 2 варианта времени и даты и нажать «Отправить». Когда это указывает c Пользователь входит в систему, в верхней части страницы я хочу отобразить уведомления со значком колокольчика, и в уведомлении должно быть написано «Вам отправлен запрос на интервью!». Затем, когда они щелкают по нему или go в разделе «Уведомления» на панели администратора, на нем отображается информация работодателей: «Привет, имя пользователя, компания AB C заинтересована в вашем профиле и хочет назначить вам собеседование». с 2 вариантами даты и времени. Соискатель выбирает дату и время, вариант 1, нажимает кнопку «Отправить», а затем работодатель получает уведомление от соискателя. Они будут общаться таким образом, пока они оба не договорились о дате и времени, чтобы назначить интервью. Поэтому я хотел бы 2 уведомления для этого. 1, когда запрос на собеседование направляется кандидату, и второй, когда кандидат выбирает удобную для него дату и время и отправляет запрос обратно работодателю. Я понимаю, как отправить уведомление, когда пользователь вошел в систему, но мне чего-то не хватает, как отправить уведомление пользователю, который не вошел в систему. Оба этих типа пользователей хранятся в моей Таблице пользователей, только с разными ролями.

job_seeker_profile.blade. php file:

{!! Form::open(['method'=>'POST', 'action'=>'AdminEmployerInterviewRequestsController@store', 'files'=>true, 'style'=>'width: 100%;']) !!}

<div class="form-group">
    <div class="input-group date" id="datetimepicker1" data-target-input="nearest">
        {!! Form::text('date_time1', null, ['class'=> $errors->first('date_time1') ? 'border-danger form-control datetimepicker-input' : 'form-control datetimepicker-input', 'data-target'=>'#datetimepicker1']) !!}
        <div class="input-group-append" data-target="#datetimepicker1" data-toggle="datetimepicker">
            <div class="input-group-text"><i class="fa fa-calendar"></i></div>
        </div><br>
    </div>
    <small class="text-danger">{{ $errors->first('date_time1') }}</small>
</div>
<div class="col">

</div>

<div class="form-group">
    <div class="input-group date" id="datetimepicker2" data-target-input="nearest">
        {!! Form::text('date_time2', null, ['class'=> $errors->first('date_time2') ? 'border-danger form-control datetimepicker-input' : 'form-control datetimepicker-input', 'data-target'=>'#datetimepicker2']) !!}
        <div class="input-group-append" data-target="#datetimepicker2" data-toggle="datetimepicker">
            <div class="input-group-text"><i class="fa fa-calendar"></i></div>
        </div><br>
    </div>
    <small class="text-danger">{{ $errors->first('date_time2') }}</small>
</div>

<div class="form-group">
    {!! Form::hidden('user_id', Auth::user()->id, ['class'=>'form-control']) !!}
</div>

<div class="form-group">
    {!! Form::hidden('job_seeker_profile_user_id', $jobSeekerProfile->id, ['class'=>'form-control']) !!}
</div>

<div class="form-group">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    {!! Form::submit('Send Interview Request', ['class'=>'btn btn-primary float-right']) !!}
</div>
<br><br><br><br>

{!! Form::close() !!}

AdminEmployerInterviewRequestsController. php file:

public function store(EmployerInterviewCreateRequest $request)
{
    $input = $request->all();

    $user = Auth::user();

    $JobSeekerProfile = JobSeekerProfile::all();

    $user->interviewRequestsSent()->create($input);
    $user->interviewRequestsReceived()->create($input);

    $user->notify(new InterviewRequestSent());

    $JobSeekerProfile->notify(new InterviewRequestReceived());

    return redirect('/admin/employer/interviews');

}

но когда я позвонил на

$JobSeekerProfile->notify(new InterviewRequestReceived());

Это выдает мне эту ошибку:

Method Illuminate\Database\Eloquent\Collection::notify does not exist.

Можно ли отправить другому пользователю уведомление после действия приняты

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Ваша ошибка в том, что вы вытягиваете каждую JobSeekerProfile в коллекцию, а затем пытаетесь вызвать notify() для коллекции. Поскольку вы отправляете идентификатор, просто используйте его для создания экземпляра и уведомите его.

public function store(EmployerInterviewCreateRequest $request)
{
    $input = $request->all();

    $user = Auth::user();

    $JobSeekerProfile = JobSeekerProfile::find($request->job_seeker_profile_user_id);

    $user->interviewRequestsSent()->create($input);
    $user->interviewRequestsReceived()->create($input);

    $user->notify(new InterviewRequestSent());

    $JobSeekerProfile->notify(new InterviewRequestReceived());

    return redirect('/admin/employer/interviews');

}
0 голосов
/ 11 марта 2020

Сейчас это невозможно. Только пользователи, которые вошли в систему, могут получить уведомление. Я отправил несколько билетов по этому поводу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...