laravel 05
注册与登录
- 密码加密
$data['password'] = bcrypt($data['password']); - 新增数据
User::create($data); - 自动登录
\Auth::attempt(['email' => $request->email, 'password' => $request->password]); - 退出
\Auth::logout();
Laravel Thinker 的使用
在命令行执行laravel简单代码, 包括但不限于创建模型,测试等
// 命令行执行php artisan tinker// eg: 创建一条记录use App\User;User::create(['name' => 'sun','email' => 'sun@qq.com','password' => bcrypt('123456')]);
Laravel Seeder 的使用
Seeder 类可以用于数据填充
- 命令行执行
php artisan make:seeder UserSeeder, 此命令自动创建 database/seeds/UserSeeder.php 文件 - 简单编辑此文件
// 写入一条记录
public function run()
{
\App\User::create([
'name' => 'sun',
'email' => 'sun@qq.com',
'password' => bcrypt('123456')
]);
}
- 去 database/seeds/DatabaseSeeder.php 注册
public function run()
{
// $this->call(UsersTableSeeder::class);
$this->call(UserSeeder::class);
}
- 运行 Seeder,
php artisan db:seed, 查看数据库,就多了一条数据
Factory 模型工厂
开源的 Faker 库可以帮助我们快速生成数据, 参考 database/factories/UserFactory.php 文件
在 tinker 中试一试
php artisan tinker启动 tinkerfactory(App\User::class, 10)->make()生成10条数据 未储存 数据库factory(App\User::class, 10)->create()生成10条数据 并储存 数据库
结合 Seeder 使用
- 修改
database/seeds/UserSeeder.php文件
public function run()
{
factory(\App\User::class, 100)->create();
}
- 执行
php artisan db:seed - 成功
问题: 新增自己的测试账号
- 执行数据迁移,数据自增从 1 开始
php artisan migrate:refresh其实是删除表又新建了 - 修改 UserSeeder.php
public function run()
{
factory(\App\User::class, 100)->create();
// 定义自己的测试账户
$user = \App\User::find(1);
$user->name = 'vdong';
$user->email = 'sunvdong@qq.com';
$user->password = bcrypt('123456');
$user->save();
}
- 再执行
php artisan db:seed - 命令可以合并
php artisan migrate:refresh --seed
