mysql - 从查询构建器转换为具有 3 个表的 Eloquent 模型

标签 mysql laravel eloquent laravel-5 laravel-query-builder

如何在 Laravel 5 中将以下查询转换为 eloquent 模型?

    $city = DB::table('cities')
        ->join('provinces', 'cities.province_id', '=', 'provinces.id')
        ->join('countries', 'provinces.country_id', '=', 'countries.id')
        ->select('cities.name as City','provinces.name as Province','countries.name as Country')
        ->where('cities.isDelete', '=', '0')
        ->get();

我的表结构是:

  1. 国家: ID, 姓名

  2. 省份: ID, 姓名, 国家ID

  3. 城市: ID, 姓名, Province_id

我已经完成了带有 2 个表的 Eloquent 模型的工作,但我不知道如何管理 3 个表。 附:我已经在模型中正确定义了我的关系。

最佳答案

尝试这些代码。欲了解更多信息,请参阅https://laravel.com/docs/5.2/eloquent-relationships

 //Create this method in city model

public function province()
    {
        return $this->belongsToMany('App\Province');
    }

//Create this method in province model

public function country()
    {
        return $this->belongsTo('App\Country');
    }

现在尝试此查询

$city = DB::table('cities')->with('province','province.country')
        ->where('cities.isDelete', '=', '0')
        ->get();

结果数据将采用嵌套形式

like cities
       -province
         ->country 

关于mysql - 从查询构建器转换为具有 3 个表的 Eloquent 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37906639/

相关文章:

php - Laravel - 多表全文搜索

mysql - 更新集,匹配单个列,单个查询中不同 ID 的多个值

MYSQL 毛额、毛额和 Netty 的联合运算

php artisan migrate throwing [PDO Exception] 找不到驱动程序 - 使用 Laravel

php - Coinbase Pro 费用和总额

php - 具有多个多态字段的模型

laravel - 如何在 Laravel 中获取多对多关系中一个对象的所有实例?

php - 从数据库中获取带有当前电子邮件地址的用户名

python - 使用 peewee 和 Python 聚合记录

mysql - 点类型的默认值