多对多关系 LARAVEL

我在从第三个表中检索数据时遇到问题,如您所见,我有三个表:

  1. 型号 : id , code , title

  2. 级别:id,代码。标题

  3. 模型级别:模型 ID,级别 ID

我有作为功能:

 $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 个不同的表,第三个是包含这两个表的关联表,所以我必须通过模型来获取 model_level。根据 model_id 获取关卡 ID,然后转到关卡并找到标题..


千巷猫影
浏览 112回答 2
2回答

梵蒂冈之花

Models– idlevels– idmodels_level– product_id– shop_id这里models_level表被称为数据透视表app/Model.phpclass Model extends Model{&nbsp; &nbsp; public function levels()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return $this->belongsToMany('App\level','models_level');&nbsp; &nbsp; }}应用程序/level.phpclass Level extends Model{&nbsp; &nbsp; public function Models()&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return $this->belongsToMany('App\Shop','models_level');&nbsp; &nbsp; }}$model = model::with('levels')->paginate(10);return view('pg',compact('model'));<tbody>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @foreach($model as $f)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <tr class="item{{$f->id}}">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td style="font-size: 13px;"> {{$f->title}}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td style="font-size: 13px;">{{$f->code}}</td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <td style="font-size: 13px;">{{$f->levels[0]->id}}</td>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tr>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; @endforeach&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {{ $filiere->links() }}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </tbody>您可以在文档中阅读更多关于多对多关系的信息。

郎朗坤

我假设您使用的是一对多关系,并且您的模型类中有正确的方法。这样,您可以将控制器方法更改为:$model = model::with('level')->paginate(10);return view('pq', $model);并在您的刀片文件循环中:<td style="font-size: 13px;">{{$f->level->title}}</td>您应该阅读 laravel 文档中的 eloquent 关系: https ://laravel.com/docs/6.x/eloquent-relationships
打开App,查看更多内容
随时随地看视频慕课网APP