<?php
namespace App\Jobs;
use App\Mail\SendEmailTest;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use App\Models\User;
class SendEmailJob implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $details;
public $emails;
public function __construct($details, $emails)
{
$this->details = $details;
$this->emails = $emails;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
info($this->emails);// لاتظهر أي قيمة
$users = $this->emails ?? User::all();
$input['title'] = $this->details['title'];
$input['message'] = $this->details['message'];
foreach ($users as $user) {
$input['email'] = $user->email;
Mail::send(
'emails.test',
['input' => $input],
function ($message) use ($input) {
$message->to($input['email'])->subject($input['title']);
}
);
}
}
}
وملف ال controller
$details = [
'title' => 'test email send',
'message' => 'hellow world'
];
User::select('email')->chunk(4, function ($emails) use ($details) {
dispatch(new \App\Jobs\SendEmailJob($details, $emails));
});