So I want to send an email notification to the lecturer because it has been reviewed by the reviewer. This table has relationships between users, proposals, revisions. The user table has 3 roles containing ADMIN, LECTURER, REVIEWER
Data Proposal Revision Controller
public function store(RevisionRequest $request, Proposal $proposal){
$this->authorize('asView', auth()->user());
$data = $request->validated();
if ($request->hasFile('file')) {
$file = $request->file('file');
$uploadFileName = Str::of($file->getClientOriginalName())->replace(' ', '-');
$fileName = pathinfo($uploadFileName, PATHINFO_FILENAME);
$fileExtension = $file->getClientOriginalExtension();
$name = $fileName . '-' . now()->format('dmyhis') . '.' . $fileExtension;
$fileUrl = $file->storeAs(Revision::REVISION_PATH, $name); // given the name with storeAs()
$data['file'] = $fileUrl;
}
$revision = new Revision();
$revision->subject = $request->subject;
$revision->suggestion = $request->suggestion;
$revision->criticism = $request->criticism;
$revision->file = $request->file;
// relationships
$revision->user_id = $data['user_id'] = auth()->user()->id;
$revision->proposal_id = $data['proposal_id'] = $proposal->id;
$revision->save(); // insert
Mail::send('emails.revision', ['data' => $data], function ($message) use ($data) {
$message->from('[email protected]', 'Administrator'); // admin
$message->subject($data['subject']);
// $id = User::where('user_id', 12)->pluck('email')->toArray();
$lecturerEmails = User::where('role', 'Lecturer')->pluck('email')->toArray();
// want to retrieve the lecturer's email which has been revised by the reviewer
$message->to($lecturerEmails); // email lecturer
});
return redirect()->route('lpp.data-proposal.revision.index', $proposal->id)->with('success', 'success !');
}