Mat*_*lis 44 php laravel laravel-5 laravel-5.2
是否可以手动注册用户(与工匠?)而不是通过身份验证注册页面?
我只需要一些用户帐户,并想知道是否有办法创建这些帐户而无需设置注册控制器和视图.
Chr*_*ors 85
我想你想一次性这样做,所以不需要像创建Artisan命令那样花哨的东西.我建议只使用php artisan tinker(很棒的工具!)并为每个用户添加以下命令:
$user = new App\User();
$user->password = Hash::make('the-password-of-choice');
$user->email = 'the-email@example.com';
$user->name = 'My Name';
$user->save();
Run Code Online (Sandbox Code Playgroud)
是的,最好的选择是创建一个播种机,这样您就可以随时重复使用它。
例如,这是我的UserTableSeeder:
class UserTableSeeder extends Seeder {
public function run() {
if(env('APP_ENV') != 'production')
{
$password = Hash::make('secret');
for ($i = 1; $i <= 10; $i++)
{
$users[] = [
'email' => 'user'. $i .'@myapp.com',
'password' => $password
];
}
User::insert($users);
}
}
Run Code Online (Sandbox Code Playgroud)
创建此播种机后,您必须运行composer dumpautoload,然后在您的database/seeds/DatabaseSeeder.php添加以下内容:
class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
Model::unguard();
$this->call('UserTableSeeder');
}
}
Run Code Online (Sandbox Code Playgroud)
现在你终于可以在php artisan db:seed --class=UserTableSeeder每次需要在表中插入用户时使用了。
小智 7
这是一个古老的帖子,但是如果有人想在Laravel 5. *中使用命令行来做,这是一个简单的方法:
php artisan tinker
Run Code Online (Sandbox Code Playgroud)
然后输入(替换为您的数据):
DB::table('users')->insert(['name'=>'MyUsername','email'=>'thisis@myemail.com','password'=>Hash::make('123456')])
Run Code Online (Sandbox Code Playgroud)
您还可以创建一个可以从命令行调用的新控制台命令。如果您想按需创建新用户,这尤其有用。
此示例使用laravel fortify,但您也可以使用自己的用户注册逻辑。
首先创建一个新的控制台命令:
php artisan make:command CreateUserCommand
Run Code Online (Sandbox Code Playgroud)
然后添加实现:
php artisan make:command CreateUserCommand
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式执行命令:
php artisan user:create -u myusername -e mail@example.com
Run Code Online (Sandbox Code Playgroud)
出于安全原因,我建议始终通过用户输入询问密码,而不是作为参数。
| 归档时间: |
|
| 查看次数: |
44216 次 |
| 最近记录: |