Laravel5.8 模型内联一对一查询数据
举例,有user(用户)表和role(角色)两张表,
user表
role表
既然是模型内联查询,当然要有User表的MODEL类文件和Role表的Role的类文件,MODEL类文件里面的功能根据自己需要添加,根据关系可以知道,user表关联role表,所以查询的数据主要在User类文件,所以我只展示了user类文件。用模型内联查询的方法一次查出user表的角色名,优势:比常规语句要简短
<?php
namespace App\Admin;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
//要定义table值,不定义的话默认找users表
//定义$timestamps属性为false,不设置则默认操作表中的create at 和update at字段,我们表中没有这个字段所以设置false
public $timestamps = false;
//关联role表
public function role()
{
return $this->hasOne('App\Admin\Role','id','role'); //第二个参数id为role表的id字段,第三个参数role对应user表中的role;这里TP5可以加个blind属性查询只需要的字段名,不用全部查询。
}
public function pageJson($tol,$limit)
{
return $this ->with('role')->orderBy('id','desc')->offset($tol)->limit($limit)->get();
}
得到的role字段还不能直接使用,role返回的是数组。
前端修改下,最后的数据查询成功,如图