数据填充问题??


<?php

namespace Database\Factories\Admin;

use App\Models\Admin\Account;
use Illuminate\Database\Eloquent\Factories\Factory;

class AccountFactory extends Factory
{
    protected $model = Account::class;

    /**
     * Define the model's default state.
     *
     * @return array
     */
    public function definition()
    {
        return [
            'username' => $this->faker->name,
            'password' => bcrypt('111111'),
            'login_ip' => $this->faker->ipv4,
            'role_id' => rand(1,3)
        ];
    }
}
<?php

namespace Database\Seeders;

use App\Models\Admin\Account;
use Illuminate\Database\Seeder;

class AccountSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Account::factory()->count(30)->create();

        $account = Account::query()->find(1);
        $account->username = 'admin';
        $account->save();
    }
}
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(AccountSeeder::class);
    }
}
php artisan migrate:refresh

php artisan db:seed

执行之后登录
密码错误的???

附言 1  ·  2年前

之前都是好的,重新执行之后突然就这样了

附言 2  ·  2年前

代码开源了,各位好兄弟可以帮忙看看错误
gitee.com/wzx205926/wzx-admin-api
感谢感谢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 25

在数据库里有填充后的数据吧?

登陆逻辑的代码,凭据是 username 吗?

2年前 评论
王大牛 (楼主) 2年前

你如果创建密码是用bcrypt, 那登录校验密码的时候用的也得是bcrypt才行, 你可以试下密码用 Hash::make('111111') , 默认是用这个的

2年前 评论
王大牛 (楼主) 2年前
luke_wu (作者) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前

哦, 我看到你的验证里有status==1 的校验, 要不你在seeder里加上设置status试试?

2年前 评论
王大牛 (楼主) 2年前
luke_wu (作者) 2年前
王大牛 (楼主) 2年前
luke_wu (作者) 2年前
小李世界 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前

找到了, 兄弟, 你自己写了个AccountObserver 把 Account creating事件给捕获了, 然后把密码自动改为了bcrypt后的request()->input('password'), 所以数据库里存的密码当然不对. 我说怎么我直接create没加密的数据到password也会自动加密...

2年前 评论
luke_wu (作者) 2年前
luke_wu (作者) 2年前
小李世界 2年前
luke_wu (作者) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
王大牛 (楼主) 2年前
chenBJ

@luke_wu 说的没问题。你执行下 php artisan cache:clear 其他几个clear都执行下试试

2年前 评论

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