add user
This commit is contained in:
@ -4,8 +4,10 @@ namespace app\controllers;
|
||||
|
||||
use app\foo;
|
||||
use app\helpers\Debug;
|
||||
use app\models\forms\CreateUserForm;
|
||||
use app\models\Question;
|
||||
use app\models\User;
|
||||
use app\services\UserService;
|
||||
use app\tables\columns\UserViewActionColumn;
|
||||
use Exception;
|
||||
use http\Message;
|
||||
@ -24,23 +26,14 @@ class UserController extends Controller{
|
||||
|
||||
public function actionAdd(): void
|
||||
{
|
||||
$_REQUEST["password_hash"] = password_hash($_REQUEST["password_hash"], PASSWORD_DEFAULT);
|
||||
|
||||
foreach ($_REQUEST as $key => $value)
|
||||
{
|
||||
// Debug::prn(User::where([$key => $value])->get()->toArray());
|
||||
// Debug::prn($user);
|
||||
// Debug::dd($user->toArray());
|
||||
if (User::where([$key => $value])->get()->toArray() !== null)
|
||||
{
|
||||
header("Location: http://itguild-framework.loc/admin/user/create");
|
||||
}
|
||||
else
|
||||
{
|
||||
User::create($_REQUEST);
|
||||
header("Location: http://itguild-framework.loc/admin/user/");
|
||||
}
|
||||
$userForm = new CreateUserForm();
|
||||
$userService = new UserService();
|
||||
$userForm->load($_REQUEST);
|
||||
if ($userForm->validate()){
|
||||
$userService->create($userForm);
|
||||
$this->redirect("/admin/user");
|
||||
}
|
||||
$this->redirect("/admin/user/create");
|
||||
}
|
||||
|
||||
public function actionQuestionCount($user_id)
|
||||
|
@ -2,6 +2,11 @@
|
||||
namespace app\models;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* @property string $username
|
||||
* @property string $email
|
||||
* @property string $password_hash
|
||||
*/
|
||||
class User extends Model {
|
||||
protected $table = 'user';
|
||||
protected $fillable = ['username', 'email', 'password_hash', 'role'];
|
||||
|
19
app/models/forms/CreateUserForm.php
Normal file
19
app/models/forms/CreateUserForm.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace app\models\forms;
|
||||
|
||||
use kernel\FormModel;
|
||||
|
||||
class CreateUserForm extends FormModel
|
||||
{
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'username' => 'required|min-str-len:5|max-str-len:30',
|
||||
'password' => 'required|min-str-len:5|max-str-len:30',
|
||||
'email' => 'required|email'
|
||||
];
|
||||
}
|
||||
|
||||
}
|
20
app/services/UserService.php
Normal file
20
app/services/UserService.php
Normal file
@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace app\services;
|
||||
|
||||
use app\models\User;
|
||||
use kernel\FormModel;
|
||||
|
||||
class UserService
|
||||
{
|
||||
|
||||
public function create(FormModel $form_model): bool
|
||||
{
|
||||
$model = new User();
|
||||
$model->username = $form_model->getItem('username');
|
||||
$model->email = $form_model->getItem('email');
|
||||
$model->password_hash = password_hash($form_model->getItem('password'), PASSWORD_DEFAULT);
|
||||
return $model->save();
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user