我在从第三个表中检索数据时遇到问题,如您所见,我有三个表:
我具有功能:
$model = model::paginate(10);
$level = level::all();
$models_level = models_level::all();
return view('pg',compact('model','level','models_level'));
如何根据检索到的模型ID检索级别名称?
这是我的刀片
<tbody>
@foreach($model as $f)
<tr class="item{{$f->id}}">
<td style="font-size: 13px;"> {{$f->title}}</td>
<td style="font-size: 13px;">{{$f->code}}</td>
<td style="font-size: 13px;">{{$f->models_level->level_id}}</td>
</tr>
@endforeach
{{ $filiere->links() }}
</tbody>
我需要显示标题而不是ID。
在这种情况下,我有2个不同的表,第3个是关联的包含这两个表,所以我必须通过模型来获取model_level。获取级别ID取决于model_id和转到水平并找到标题..
Models
– id
levels
– id
models_level
– product_id
– shop_id
此处models_level表称为数据透视表app / Model.php
class Model extends Model
{
public function levels()
{
return $this->belongsToMany('App\level','models_level');
}
}
app / level.php
class Level extends Model
{
public function Models()
{
return $this->belongsToMany('App\Shop','models_level');
}
}
$model = model::with('levels')->paginate(10);
return view('pg',compact('model'));
<tbody>
@foreach($model as $f)
<tr class="item{{$f->id}}">
<td style="font-size: 13px;"> {{$f->title}}</td>
<td style="font-size: 13px;">{{$f->code}}</td>
<td style="font-size: 13px;">{{$f->levels[0]->id}}</td>
</tr>
@endforeach
{{ $filiere->links() }}
</tbody>
您可以阅读有关many to many relationships in the docs.的更多信息
我假设您正在使用一对多关系,并且在模型类中具有正确的方法。
通过这种方式,您可以将控制器方法更改为:
$model = model::with('level')->paginate(10);
return view('pq', $model);
并且在刀片文件循环中:
<td style="font-size: 13px;">{{$f->level->title}}</td>
您应该在laravel文档中阅读雄辩的关系:https://laravel.com/docs/6.x/eloquent-relationships