为了账号安全,请及时绑定邮箱和手机立即绑定

多对多关系 LARAVEL

多对多关系 LARAVEL

PHP
千巷猫影 2022-07-16 09:55:11
我在从第三个表中检索数据时遇到问题,如您所见,我有三个表:型号 : id , code , title级别:id,代码。标题模型级别:模型 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,然后转到关卡并找到标题..
查看完整描述

2 回答

?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

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');

    }

}

应用程序/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>

您可以在文档中阅读更多关于多对多关系的信息。


查看完整回答
反对 回复 2022-07-16
?
郎朗坤

TA贡献1921条经验 获得超9个赞

我假设您使用的是一对多关系,并且您的模型类中有正确的方法。


这样,您可以将控制器方法更改为:


$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


查看完整回答
反对 回复 2022-07-16
  • 2 回答
  • 0 关注
  • 111 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号