数据填充问题??


<?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  ·  3年前

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

附言 2  ·  3年前

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 25

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

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

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

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

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

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

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

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

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

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

3年前 评论

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