更改Laravel 5.6中用户表的位置

时间:2018-02-27 09:46:12

标签: php laravel laravel-5.6

我正在学习Laravel 5.6,我希望能够使用现有的user表,该表存在于另一个数据库中。它仍然被称为用户,但它有很多很多数据。

为了达到这个目的,我真的需要做两件事:

  • 让Laravel使用不同数据库中的users数据库使用默认数据库
  • 将加密密码的方法更改为我的下级方式(直到我实际上为我的所有用户使用bcrypt)

因此。对于第一点,我目前将Laravel .env数据库变量指向我的测试数据库laravel。我想要的是让用户查找/身份验证使用我的users数据库中的表shop。因此laravel.users代替shop.users而不是$hash = hash('sha256',$salt.$password.$salt);

正如我之前提到的那样,我还没有使用过很好的加密技术,但在我开始正确加密每个人的密码之前,我需要Laravel使用我自己的加密方法(我知道这不是安全的)但是散列如下:

var data = $('body').data(), // data has properties house and mouse house = data.house, mouse = data.mouse

这可能吗/我怎样才能实现这两件事?

2 个答案:

答案 0 :(得分:1)

我也是Laravel的新手,但我非常确定实现这一目标的最简单方法是将现有的商店数据库导入新的Laravel数据库。

从我收集到的内容来看,没有任何官方支持,但编写一个小脚本,使用{{将旧数据库中的所有数据传输到新数据库应该非常简单3}}然后将它们全部循环到新的中。

或者只使用一些regular php sql queries

答案 1 :(得分:1)

仅供参考,我只需修改文件\config\auth.php即可找到问题的答案。有一个数组被注释掉,看起来像这样:

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\User::class,
    ],

    // 'users' => [
    //     'driver' => 'database',
    //     'table' => 'users2',
    // ],  
],

我没有注释掉这些部分并将表格设置为users2。这工作得很好。但是仍然从同一个数据库加载。所以我将table字符串更改为:shop.users2,它立即就可以了。

简单!我找不到任何关于这方面的文件,但我很高兴它有效。