0
点赞
收藏
分享

微信扫一扫

larvael 8 联表查询

蓝哆啦呀 2022-04-13 阅读 24
laravelphp

larvael 8 联表查询


一、数据库

老师表 id 主键 t_name 老师名字 s_id 学生id

学生表 s_id 学生id s_name学生名字
在这里插入图片描述

左连接
查询:我们要查询到每一个老师的学生名字 , mysql语句:

select a.id,a.t_name,b.s_name from teacher as a LEFT JOIN student as b ON a.s_id=b.id

在这里插入图片描述

二、用laravel8模型的链式操作调用

1.创建模型

我们用artisan脚手架

php artisan make:model User/Teacher
php artisan make:model User/Student
<?php

namespace App\Models\User;

use Illuminate\Database\Eloquent\Model;

class Student extends Model
{
    protected $table='student';//表名
    public $timestamps=false;//不使用laravel自动管理的数据列
}


添加 index 方法

<?php

namespace App\Models\User;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Teacher extends Model
{
    protected $table='teacher as a';//定义表名  as a 表示:表的别名是a
    public $timestamps=false;//不使用laravel自动管理的数据列

//    select a.id,a.t_name,b.s_name from teacher as a LEFT JOIN student as b ON a.s_id=b.id
    public function index(){
        return $this->select('a.id','a.t_name','b.s_name')
            ->leftjoin('student as b','a.s_id','=','b.id')
            ->get();
    }
}

2.创建控制器

php artisan make:controller UserController

添加 index 方法

<?php

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\User\Teacher;

class UserController extends Controller
{
    public function index(){
        $model =new Teacher();
        $list = $model -> index();
        return $list;
    }
}

3.定义路由

use App\Http\Controllers\UserController;
Route::get('lianbiao',[UserController::class, 'index']);

浏览器输入:http://www.la.com/lianbiao
在这里插入图片描述
但是有中文乱码

解决中文乱码问题

在这里插入图片描述
我们简单修改一下

public function index(){
        $model =new Teacher();
        $list = $model -> index();
        $json =JSON_encode($list , JSON_UNESCAPED_UNICODE);//
        return $json;
}

在这里插入图片描述

举报

相关推荐

0 条评论