数据填充问题??
<?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
执行之后登录
密码错误的???
之前都是好的,重新执行之后突然就这样了
代码开源了,各位好兄弟可以帮忙看看错误
gitee.com/wzx205926/wzx-admin-api
感谢感谢
在数据库里有填充后的数据吧?
登陆逻辑的代码,凭据是 username 吗?
你如果创建密码是用bcrypt, 那登录校验密码的时候用的也得是bcrypt才行, 你可以试下密码用 Hash::make('111111') , 默认是用这个的
哦, 我看到你的验证里有status==1 的校验, 要不你在seeder里加上设置status试试?
找到了, 兄弟, 你自己写了个AccountObserver 把 Account creating事件给捕获了, 然后把密码自动改为了bcrypt后的request()->input('password'), 所以数据库里存的密码当然不对. 我说怎么我直接create没加密的数据到password也会自动加密...
@luke_wu 说的没问题。你执行下 php artisan cache:clear 其他几个clear都执行下试试