php - Laravel 查找不存在的表
问题描述
我是 PHP 新手。我制作了一个名为的表,tbl_users
但由于某些原因,我无法理解 laravel 正在尝试其他一些名为users
.
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'raydb.users' doesn't exist
我的迁移代码看起来像这样,在播种机中也是如此。just 的用法users
无处可去。
public function up()
{
Schema::create('tbl_users', function (Blueprint $table) {
$table->id();
$table->string('Name');
$table->string('Email')->unique();
$table->string('Password');
$table->timestamps();
});
}
我做了一个新的控制器,它试图调用它看起来像这样的表
function login(Request $req){
return User::where(['email'=>$req->email])->first();
}
我真的找不到调用表或 SQL 的其他地方...我tbl_Users
在 MySQL 中看到了表,并且里面的所有内容都带有正确的登录名密码等。我不明白 laravel 在哪里调用了一个名为users
解决方案
Laravel 使用约定让你的生活更轻松。其中一个约定是 Laravel 假设你的表名是模型名的复数。您应该阅读文档以获取更多信息。
您在User
幕后使用了一个名为 so 的模型,Laravel 正在使用它的约定并users
在您的数据库中查找一个名为的表。如果要覆盖与模型关联的表的名称,则需要在模型上指定表名称。
class User extends Model
{
protected $table = 'tbl_users';
}
理想情况下,除非您有特定的理由不这样做,否则建议坚持 Laravel 表命名约定。从长远来看,这将使您和他人的生活更轻松。
推荐阅读
- react-native - 反应原生导航新手:showInAppNotification 上的全屏宽度?
- electron - Webframe 执行Javascript 传递对象
- extjs - 服务器端如何工作?
- c++ - 使用初始化列表初始化 unique_ptr 的容器,继续
- matlab - 编辑刻度线之间的距离
- docker - 即使服务创建失败,Docker Swarm 服务入口也不会被删除?
- c++ - C++ 将 ppm 转换为 jpeg
- google-chrome - Chrome 开发工具:工具提示未正确显示
- c# - 将不同的材质分配给同一对象上的不同网格
- sql - 如何在 Google App Maker 中将记录从一个模型移动到另一个模型