如何通过Laravel中的ID获取用户名?

时间:2019-04-01 13:42:25

标签: php laravel phpmyadmin

我正在尝试创建一个商品论坛,一些用户可以在其中创建商品以提供服务,并且我想显示创建商品的人的姓名,而不是ID。

在我的数据库中,我有两个表:

  • 优惠表: Offers table

  • 用户表:

Users table

在报价中,我有一列Professor_id,与用户表的ID有关。

这是我在控制器中显示的报价:

props

在blade.php中,我有该代码:

props

,显示如下: ofertes.blade.php

在显示nom的地方,如何显示名称而不是ID?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您在Oferta模型中指定了与professor的关系,则可以使用以下代码:

public function ofertes(){

    $ofertes = Oferta::with('professor')->latest()->get();

    return view('create.ofertes')->with(compact('ofertes'));
}

您的刀片:

@foreach($ofertes as $oferta)
    <tr>
        <td>Nom : {{$oferta->professor->nom}}</td> <br>
        <td>Títol : {{$oferta->titol}}</td> <br>
        <td>Descripció: {{$oferta->descripcio}}</td> <br>
        <td>Data: {{$oferta->created_at}}</td> <br><br>
    </tr>
@endforeach

如果尚未指定该关系,则应在Oferta模型中添加以下方法(您可能需要根据名称空间对此进行一些调整):

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

答案 1 :(得分:0)

很容易

public function ofertes(){

    $ofertes = Oferta::with('professor')->latest()->get();
    $users = User::all();

    return view('create.ofertes')->with(compact('ofertes', 'users'));
}

In blade file:

<td>Nom : @foreach ($users as $user)
           @if ($oferta->professor_id === $user->id) $user->nom $user->cognom
           @endif
          @endforeach
</td><br>

答案 2 :(得分:-2)

像这样加入两个表

$oferta = DB::table('users')
        ->join('offers','users.id','=','offers.professor_id')
        ->select('offers.*','users.nom')
        ->orderby('offers.id','DESC')->get();

然后替换{{$oferta->professor_id}}代替{{$oferta->nom}}

您的问题应该得到解决