Php 如何使用Laravel 5.6中的车辆用户id打印用户电子邮件

Php 如何使用Laravel 5.6中的车辆用户id打印用户电子邮件,php,mysql,laravel,Php,Mysql,Laravel,我正在我的应用程序中使用Laravel5.6和mysql。我是新来的。我有下表作为车辆 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 ju

我正在我的应用程序中使用Laravel5.6和mysql。我是新来的。我有下表作为车辆

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
现在我需要在我的刀片文件中使用上面的vehicles table 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>

品牌:{{$vehicles->name}

型号:{{$vehicles->number}
首先查看为表创建模型的步骤,然后您可以为两个表加入该步骤,并获取用户电子邮件

$vehicles = Vehicle::select('vehicles.name', 'vehicles.number', 'users.email')
        ->leftjoin('users', 'users.id', '=', 'vehicles.user_id')->get();
您也可以使用来实现这一点

$userEmails= DB::table('vehicles')
            ->join('contacts', 'user.id', '=', 'vehicles.user_id')
            ->select('users.email')
            ->get();
试试上面的代码。 这是SQL连接概念。
供参考

如果您的
车型上有如下关系:

public function user()
{
    return $this->belongsTo(User::class);
}
您只需访问
user
属性即可获取
email
{{{$vehicle->user->email}

为了提高性能,当您从数据库中获取车辆时,最好立即加载用户:

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

您的代码在哪里?出现了什么错误?事实上,我正在寻找一种方法,使用vehicles Table中的user_id打印电子邮件。我应该将其放在我的控制器中的什么位置?将在页面加载时调用的函数放入,或者如果您想在单击事件或任何其他事件中检索,使用AJAX并通过routes指出各自的控制器和功能。php我应该将其放在我的控制器中吗?是的,你应该将其放在控制器中并将车辆数据发送到视图。那么我如何在视图文件中打印电子邮件?我的意思是{$vehicles->email}可以吗?使用上述控制器功能,我可以返回车辆数据打印视图吗?到目前为止,您的控制器和刀片代码是什么?请编辑并添加您的问题。如果您只加载一个型号(
Vehicle::find($id)
),您不必急于加载
用户关系。它将在第一次访问时加载。但是您仍然可以在控制器中使用
Vehicle::with('user')->find($id)
。无论如何,如果您在
车辆
模型上具有上述关系,则在刀片式模板中使用
$vehicles->user->email
将有效。顺便说一句,请注意如何命名变量。拥有变量
$vehicles
表明它包含
车辆的列表
,而不仅仅是一辆
车辆
。因此,为了正确起见,您应该区分
$Vehicle=Vehicle::get()
$Vehicle=Vehicle::find($id)
。这使得代码更易于维护。像这样更改车辆模型关系,公共函数user(){return$This->belongsTo(user::class);}现在可以工作了