sql已经在视图展示的语句如何显示别的表中的内容而不改变原有的值
1.这个功能是我在公司的时候的一个需求,我师傅和我说你不可能就是说你可以添加的时候是数字但是展现给客户看的时候是数字最好是名称因为客户不知道这是什么意思
2.于是我陷入了漫长的实现这个功能中一开始只是能查询出数据在视图中并不会展示知道今天灵感来了,挡不住实现了这个功能
2.1把查询的数据传给blade模板(我这里多查询了第二张表中的id主键可以在视图中比较值而查询名称)
$res = \DB::select("SELECT users.id,real_name FROM users,car_apply WHERE users.id=car_apply.user_id;"); $res1 = \DB::select("SELECT users.id,real_name FROM users,car_apply WHERE users.id=car_apply.two_userid;"); return view('admin.carmanage.index', compact('data','res','res1'));
2.2 试图层调用数据显示(核心代码 )
2.2.1 $num是foreach中计数用的 用if判断可以这么理解 (如果本表中的id==查询表数据第几个的id 那么显示 别的表中的对应名称 否则如果没有的话 还是显示本表中的数据)
3.显示结果如下:(这里需要注意的是如果你显示表的值修改后你的模糊查询一定要同步修改不然会报错)
3.上面一种能显示是能显示但是还是有bug最后我又改进了一下在blade模板中直接写代码其他的都可以不需用了
<?php $two_userid_name=\App\Models\Users::where(['id'=>$key->two_userid])->select('id','real_name')->first()?> {{-- 如果users表中的id==现在的id挑选出来你需要的信息--}} @if(($key->two_userid)==$two_userid_name->id) <td>{{$two_userid_name->real_name}}</td> @else <td>{{$key->two_userid}}</td> @endif
补充后来又学到了显示数据库信息的简短代码例(显示数据库中对应的img)
<img src="{{\App\Models\User::where('id',85)->first()->img}}" alt=""></div>