Получение данных из двух связанных таблиц в Laravel?

Есть две связанные таблицы: Users и Taks

  class Task extends Model
{
    use HasFactory;
    use SoftDeletes;
    use Notifiable;


    protected $table = 'tasks';
    protected $guarded = false;

 
    public function users()
    {

        return $this->belongsTo(User::class, 'user_id');
    }

Я создала команду для отправки сообщений, мне нужно отправлять данные каждый день по задачам. Письмо отправляет, но вместо имя пользователя сейчас он отправляет его user_id. Как можно получит имя пользователя? Я хотела через массив передавать ('user_id'=>task->users->name), но он пишет ошибку, может сам запрос я делаю не правильно.

    class SendEmail extends Command
{

    protected $signature = 'emails:send';

    protected $description = 'Command description';

    public function __construct()
    {
        parent::__construct();
    }

  
    public function handle()
    {

      $task = DB::table('tasks')->where('violation', '=', 'Да')->get()->pluck('user_id');

        $subiect = 'Список';

        $task = array(
            'id' => $task,

        );
        Mail::send('mail4', ['task1' => $task],
            function ($m) use ($subiect) {
                $m->from('[email protected]');
                $m->to('test@test12')->subject($subiect);
            });

    }
}

Ответы (1 шт):

Автор решения: Knyaz71

Попробуйте воспользовать Eloquent. Замените

$task = DB::table('tasks')->where('violation', '=', 'Да')->get()->pluck('user_id');

на

$task = Task::where('violation', '=', 'Да')->with('users')->get();

П.С.
Не забудьте подключить модель Task через use.

→ Ссылка