どのように私は、現在ログインしていないユーザーにLaravelに通知を送ることができますか?

ライアン・サックス:

私は、アプリケーションの求人検索の種類を構築しています。それぞれが自分の役割を持っているユーザーが、求職者と雇用者の2種類があります。雇用者がログインしているとき、彼は候補者のプロフィールを閲覧し、面接を要求することができます。彼は、時間と日付のための2つのオプションを選択し、送信をクリックします。ページ上部の中にその特定のユーザーの兆候が、私はベルのアイコンと言うべき通知と通知を表示したい場合は、「あなたはインタビューのリクエストを送ってきました!」。彼らはそれをクリックするか、管理パネルの[Notification]セクションに移動したときに続いて、それは雇用者が表示されます情報「こんにちはユーザー名、会社ABCは、自分のプロフィールに興味を持っているし、面接のためにあなたのスケジュールを設定したいと思います。」2つの日付と時刻のオプションを持ちます。求職者選択日付と時刻のオプション1、クリックを送信し、その後、雇用者は求職者からの通知を受け取ります。彼らは両方のセットアップに日付と時刻のインタビューに同意するまで、彼らはこの方法を伝えます。だから私は、このために2つの通知をしたいと思います。インタビューの依頼が候補と候補者が彼のために良いですし、雇用主に要求バックを送信した日付と時刻を選択したときのために第二に送信されます1。私は、ユーザーがログインしている場合に通知を送信する方法を理解するが、私はログに記録されていないユーザーに通知を送信する方法のために何かが欠けています。ユーザーのこれらのタイプの両方が異なるだけの役割で、私のユーザーテーブルに格納されています。インタビューの依頼が候補と候補者が彼のために良いですし、雇用主に要求バックを送信した日付と時刻を選択したときのために第二に送信されます1。私は、ユーザーがログインしている場合に通知を送信する方法を理解するが、私はログに記録されていないユーザーに通知を送信する方法のために何かが欠けています。ユーザーのこれらのタイプの両方が異なるだけの役割で、私のユーザーテーブルに格納されています。インタビューの依頼が候補と候補者が彼のために良いですし、雇用主に要求バックを送信した日付と時刻を選択したときのために第二に送信されます1。私は、ユーザーがログインしている場合に通知を送信する方法を理解するが、私はログに記録されていないユーザーに通知を送信する方法のために何かが欠けています。ユーザーのこれらのタイプの両方が異なるだけの役割で、私のユーザーテーブルに格納されています。

job_seeker_profile.blade.phpファイル:

{!! 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ファイル:

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.

それは、アクションが取られた後、別のユーザーに通知を送信することは可能ですか?

miken32:

あなたはすべての単一のを引っ張っているので、あなたの誤差があるJobSeekerProfileコレクションにして、呼び出そうとしnotify()、コレクションに。あなたがIDを提出しているので、ちょうどインスタンスを構築し、それを通知するためにそれを使用。

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');

}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=277254&siteId=1