【发布时间】:2020-06-07 18:19:28
【问题描述】:
我必须在 laravel 中制作用于身份验证的自定义通用包,但有一个问题是,每当我使用 MongoDB 时,该包不起作用,而使用 MySQL 时一切都很好。由于 laravel 模型,MySQL 使用 eloquent 模型,而 MongoDB 使用 jessengers 模型。那么有什么想法或技巧可以将单个模型用于不同的数据库吗?
使用 MySql 时
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable {
protected $table = 'users';
}
在 MongoDB 中
use Jenssegers\Mongodb\Auth\User as Authenticatable;
class User extends Authenticatable {
protected $collection = 'users';
}
并得到像
这样的错误Symfony\Component\Debug\Exception\FatalThrowableError: 在文件 /var/www/test-authentication/vendor/laravel/framework/src/Illuminate/Database/Connection.php 中调用一个成员函数 prepare() /p>
【问题讨论】:
-
“不工作”错误?出乎意料的结果?你能显示代码吗?哪些 MongoDB/MySQL 版本已经过测试?
-
现在,我已经完全描述了,简而言之,我想在数据库在 MongoDB 或 MySQL 时使用单个模型
标签: mysql laravel mongodb eloquent model