Laravel指定表名的重要性

由于Laravel在创建 Model 的时候会自动关联对应的表名,具体遇到问题的流程如下:

在Terminal中输入以下指令后会在 App 目录下创建一个customer.php 文件

php artisan make:model Customer

但是这边默认需要在数据库中添加的表为 customers 而不是 customer,也就是说系统会自动根据 Model 的名称加上复数“s”,这边一般情况是没有问题,但是如果遇到诸如 person 变 people 或者各种我们国人不能很简单辨别的形式,那么实惠对我们的开发造成问题;另外也有可能我们不想要系统自动匹配数据库,而要对表名进行自定义。

我们需要做的其实很简单,在创建的 Model 文件函数中添加一条指定表名的规则:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Customer extends Model{
 protected $table = 'customer';
}

如上我们加入了 protected $table = 'customer';,强制把 customer.php 对应的数据库指定为 customer,而不是系统默认的 customers。这一点我们也可以在框架自带的User.php中看到,为了程序运行稳定和不出错,这一步应该在每一个Model 中都应用。


遇到问题,简单记录,原文链接http://www.iyu.co/web/laravel-protect-table/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值