话说为什么 Elqument 模型名和默认表名要弄成单复数这么麻烦呢?

1.我们平常命名数据库表名也没有统一地加复数后缀的习惯吧?这样设置有什么好处呢?
2.如果我想去掉这个转换,应该怎么改源码呢?(找了半天没找到源码对应的位置。。。)

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

重写模型的 getTable 方法 应该 就可以了,,,

4年前 评论
poker_face (楼主) 4年前
讨论数量: 4

重写模型的 getTable 方法 应该 就可以了,,,

4年前 评论
poker_face (楼主) 4年前
  1. 我们平常命名数据库表名也没有统一地加复数后缀的习惯吧?这样设置有什么好处呢?

可以把数据表看作 Eloquent 模型的集合,每条数据都是 Eloquent 模型的一个实例,所有实例的集合就构成了这张表的全部数据。
复数也算是更加语义化的表述吧。Eloquent 模型简介

  1. 如果我想去掉这个转换,应该怎么改源码呢?(找了半天没找到源码对应的位置。。。)

这个只能说多看文档。Eloquent 模型约定

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Flight extends Model
{
    /**
     * 与模型关联的表名
     *
     * @var string
     */
    protected $table = 'my_flights';
}
4年前 评论
poker_face (楼主) 4年前

@chen05_20 如果之前用的 TP5 之后的版本,模型的使用方式是有相似之处的。 TP6.0 模型设置

<?php
namespace app\model;

use think\Model;

class User extends Model
{
    // 设置当前模型对应的完整数据表名称
    protected $table = 'think_user';
}
4年前 评论
poker_face (楼主) 4年前

至于单复数,全看 作者爱好。。
避免一些英文复数并不是简单地在后缀加个 sies 等之类的,怕有人不会) ,建议建表统一用单数形式

4年前 评论
poker_face (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!