CdmsController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App\Admin\Controllers;
  3. use Encore\Admin\Controllers\AdminController;
  4. use Encore\Admin\Form;
  5. class CdmsController extends AdminController
  6. {
  7. /**
  8. * Make a form builder.
  9. *
  10. * @return Form
  11. */
  12. public function form()
  13. {
  14. $userModel = config('tenancy.database.users_model');
  15. $permissionModel = config('tenancy.database.permissions_model');
  16. $roleModel = config('tenancy.database.roles_model');
  17. $form = new Form(new $userModel());
  18. $userTable = config('tenancy.database.users_table');
  19. $connection = config('tenancy.database.connection');
  20. $form->display('id', 'ID');
  21. $form->text('username', trans('tenancy.username'))
  22. ->creationRules(['required', "unique:{$connection}.{$userTable}"])
  23. ->updateRules(['required', "unique:{$connection}.{$userTable},username,{{id}}"]);
  24. $form->text('name', trans('tenancy.name'))->rules('required');
  25. $form->image('avatar', trans('tenancy.avatar'));
  26. $form->password('password', trans('tenancy.password'))->rules('required|confirmed');
  27. $form->password('password_confirmation', trans('tenancy.password_confirmation'))->rules('required')
  28. ->default(function ($form) {
  29. return $form->model()->password;
  30. });
  31. $form->ignore(['password_confirmation']);
  32. $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::all()->pluck('name', 'id'));
  33. $form->multipleSelect('permissions', trans('tenancy.permissions'))->options($permissionModel::all()->pluck('name', 'id'));
  34. $form->display('created_at', trans('tenancy.created_at'));
  35. $form->display('updated_at', trans('tenancy.updated_at'));
  36. $form->saving(function (Form $form) {
  37. if ($form->password && $form->model()->password != $form->password) {
  38. $form->password = bcrypt($form->password);
  39. }
  40. });
  41. return $form;
  42. }
  43. }