Laravel,如何通过外键

时间:2017-09-13 14:44:56

标签: php mysql laravel

我有User模型和Consulta模型,consulta模型有外键' user_id'在用户上引用id。

抱歉我的英语。

我需要在user_id上显示列表中的用户名

模型用户

public function consultas()
{
    return $this->hasMany('App\Consulta','user_id');
}

模型咨询

public function usuarios()
{
return $this->hasMany('User');
}

控制器,只有' $ registros'它的工作原理

$userteste = User::with('consultas')->get();
$registros = Consulta::all();
return view('consultas.index' , compact('registros','userteste'));

并查看

<table>
<thead>
<tr>
<th>Nome</th>
<th>Data</th>
<th>Hora</th>
<th>Situação</th>
<th>Ação</th>
</tr>
</thead>
<tbody>
@foreach($registros as $registro)
@can('ver-consulta', $registro)
<tr>        
<td>{{$registro -> user_id}} </td>  
<td>{{$registro -> data}} </td> 
<td>{{$registro -> hora}}</td>  
<td>{{$registro -> situacao}} </td>
<td>
<a class="btn teal" href="/consultas/editar/{{$registro->id}}">
<i class="material-icons">local_printshop</i>
</a>                
</td>
</tr>
@endcan
@endforeach
</tbody>
</table>

我需要&#39; user_id&#39;显示&#39;名称&#39;在表用户,而不是编号关闭id。 抱歉我的英文

in this case the results
nome = 1
I need in 'Nome' the name of user:
nome = luiz

3 个答案:

答案 0 :(得分:1)

Larereciónenel modelo Consulta tiene que ser:

public function usuario()
{
    return $this->belongsTo('User', 'user_id');
}

En el controller podes hacer:

$registros = Consulta::with('usuario')->get();

Y en la vista:

@foreach($registros as $registro)
    <tr>
        <td>{{ $registro->usuario->name }}</td>
    </tr>
@endforeach

Es recomendable chequear siexisteracreciónantesde acceder a la propiedad:

{{ !is_null($registro->usuario) ? $registro->usuario->name : 'No user assigned' }}

答案 1 :(得分:0)

如果Consulta属于User

// In Model Consulta
public function usuarios()
{
    return $this->belongsTo(User::class);
}

// Controller
$registros = Consulta::with('usuarios')->get();

// View
<td>{{ $registro->usuarios->nome }}</td>

答案 2 :(得分:0)

用户模型

public function consultas()
 {
    return $this->hasMany('App\Consulta');
 }

咨询模型

public function user()
  {
     return $this->belongsTo('App\User','user_id');
  }

控制器

$registros = Consulta::all();

查看

@foreach(registros as registro)
  <tr>
    <td>{{ $registro->user->name }}</td>
  </tr>
@endforeach