如何在Laravel 5.6中使用车辆user_id打印用户电子邮件

时间:2018-11-03 07:38:49

标签: php mysql laravel

我在我的应用程序中使用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 :(得分:1)

如果您的Vehicle模型上具有如下所示的关系:

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

您只需访问user属性即可获得email{{ $vehicle->user->email }}

为了提高性能,从数据库中获取车辆时,急于加载用户是有意义的:

$vehicles = Vehicle::with('user')->get();

答案 1 :(得分:0)

首先看一下this为表创建模型,然后可以将其加入两个表并获取用户电子邮件。

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

您也可以使用Laravel relations来实现。

答案 2 :(得分:0)

std::cout << (void*)foo;

尝试上面的代码。 这是SQL连接的概念。 供您参考https://laravel.com/docs/5.7/queries#joins