我在访问与多个表相关的数据时遇到问题,这里是我的代码:
<table class="table table-striped">
<thead>
<th>Ejercicio</th>
<th>Unidad</th>
<th>Descripcion</th>
<th>Tipo actividad</th>
<th>Operaciones</th>
</thead>
@foreach($exercises as $exercise)
<tbody>
<td>{{$exercise->name}}</td>
<td>{{$exercise->unit}}</td>
<td>{{$exercise->description}}</td>
<td>{{$exercise->activity_id}}</td>
<td>
<?php echo link_to('exercise/edit/'.$exercise->id, $title = 'Editar', $attributes = array('class' => 'btn btn-primary'), $secure = null); ?>
</td>
</tbody>
@endforeach
</table
在第<td>{{$exercise->activity_id}}</td>
行上这只是另一个名为activity_type的表的外键,它有一个id和一个名字,所以我想要显示的是具有此id的名称。
我该怎么做?
答案 0 :(得分:1)
首先在你的基础模型上写一个关系。这里我给你一个属于关系的例子
public function ActivityRelation()
{
return $this->belongsTo('App\ActivityType', 'id', 'activity_id');
}
然后就可以像那样使用
{{$exercise->ActivityRelation->name}}
答案 1 :(得分:0)
您需要在模型中建立关系。
在你的Exercise.php中
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Exercise extends Model
{
public function activity_type()
{
return $this->belongsTo('App\ActivityType','activity_type');
}
}
在你的ActivityType.php中,在你的情况下并不需要这个,但如果你想获得反向关系。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class ActivityType extends Model
{
public function exercises()
{
return $this->hasMany('App\Exercise');
}
}
之后,您可以通过以下方式访问“活动”属性:
<td>{{$exercise->activity_type->name}}</td>