Как напечатать электронную почту пользователя с помощью транспортного средства user_id в Laravel 5.6 - PullRequest
0 голосов
/ 03 ноября 2018

Я работаю с Laravel 5.6 и MySQL в моем приложении. и я новичок в Laravel. У меня есть следующие таблицы в качестве транспортных средств,

id  name  number  user_id
1   car   123        1
2   van   258        2
3   lorry 125        5
4   car   896        7

и пользовательская таблица вот так,

id name    email
1  hyu     agt@mail.com
2  opv     yyuj@mail.com
3  kio     juik@mail.com
4  lop     kiuf@mail.com
5  hyg     htgd@mail.com

Теперь мне нужно распечатать электронную почту, используя приведенную выше таблицу транспортных средств user_id в моем блейд-файле, как я могу это сделать? Редактировать У меня есть следующий файл лезвия для печати таблицы транспортных средств,

{{$vehicle->name}}
{{$vehicle->number}}

редактировать Контроллер моего автомобиля,

 public function show($id)
    {
        $vehicles = Vehicle::find($id);


        return view('vehicles.show')->withVehicles($vehicles);
    }

и показ файла блейда,

<div class="col-md-5" id="vl"> 
<div><label >Brand:</label>{{$vehicles->name}}</div>
<br>
<div><label >Model:</label>{{$vehicles->number}}</div>
<br>

Ответы [ 3 ]

0 голосов
/ 03 ноября 2018
$userEmails= DB::table('vehicles')
            ->join('contacts', 'user.id', '=', 'vehicles.user_id')
            ->select('users.email')
            ->get();

Попробуйте код выше. Это концепция соединения SQL. Для справки https://laravel.com/docs/5.7/queries#joins

0 голосов
/ 03 ноября 2018

Если у вас есть отношение на вашей модели Vehicle, которое выглядит следующим образом:

public function user()
{
    return $this->belongsTo(User::class);
}

Вы можете просто получить доступ к свойству user, чтобы получить email: {{ $vehicle->user->email }}

Для повышения производительности имеет смысл загружать пользователей при извлечении автомобилей из базы данных:

$vehicles = Vehicle::with('user')->get();
0 голосов
/ 03 ноября 2018

Сначала взгляните на this , чтобы создать модель для таблиц, а затем вы можете присоединиться к ней для обеих таблиц и также получить электронную почту пользователя.

$vehicles = Vehicle::select('vehicles.name', 'vehicles.number', 'users.email')
        ->leftjoin('users', 'users.id', '=', 'vehicles.user_id')->get();

Вы также можете использовать Отношения Laravel для достижения этого.

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