从第三个表检索数据时遇到问题,如您所见,我有三个表:
我具有以下功能:
$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和转到 找标题..
答案 0 :(得分:0)
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>
的更多信息
答案 1 :(得分:-1)
我假设您正在使用一对多关系,并且在模型类中使用了正确的方法。
这样,您可以将控制器方法更改为:
$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