DocterAccountController.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Community\Controllers;
  3. use App\Models\CdmsUsers;
  4. use App\Models\Organization;
  5. use Encore\Admin\Controllers\AdminController;
  6. use Encore\Admin\Form;
  7. class DocterAccountController extends AdminController
  8. {
  9. protected $title = '添加账号';
  10. /**
  11. * Make a form builder.
  12. *
  13. * @return Form
  14. */
  15. public function form()
  16. {
  17. $userModel = config('tenancy.database.users_model');
  18. $roleModel = config('tenancy.database.roles_model');
  19. $org_id = request('org_id');
  20. $form = new Form(new $userModel());
  21. $userTable = config('tenancy.database.users_table');
  22. $connection = config('tenancy.database.connection');
  23. $form->display('id', 'ID');
  24. $form->text('username', trans('tenancy.username'))
  25. ->creationRules(['required', "unique:{$connection}.{$userTable}"])
  26. ->updateRules(['required', "unique:{$connection}.{$userTable},username,{{id}}"]);
  27. $form->text('name', trans('tenancy.name'))->rules('required');
  28. $form->image('avatar', trans('tenancy.avatar'));
  29. $form->password('password', trans('tenancy.password'))->rules('required|confirmed');
  30. $form->password('password_confirmation', trans('tenancy.password_confirmation'))->rules('required')
  31. ->default(function ($form) {
  32. return $form->model()->password;
  33. });
  34. $form->ignore(['password_confirmation']);
  35. $form->hidden('org_id')->value(request('org_id'));
  36. $form->hidden('docter_id')->value(request('docter_id'));
  37. if($form->isEditing()){
  38. $reoute = request()->route()->parameters();
  39. $id = intval($reoute['docter_account']);
  40. $org_id = CdmsUsers::where(['id'=>$id])->value('org_id');
  41. $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::where('org_id',$org_id)->get()->pluck('name', 'id'));
  42. } else {
  43. $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::where('org_id',$org_id)->get()->pluck('name', 'id'));
  44. }
  45. // $form->multipleSelect('roles', trans('tenancy.roles'))->options($roleModel::whereIn('name',['门诊医生','儿保医生','计免医生','图文咨询','所有医生'])->get()->pluck('name', 'id'));
  46. $form->display('created_at', trans('tenancy.created_at'));
  47. $form->display('updated_at', trans('tenancy.updated_at'));
  48. $form->saving(function (Form $form) {
  49. if ($form->password && $form->model()->password != $form->password) {
  50. $form->password = bcrypt($form->password);
  51. }
  52. });
  53. $form->saved(function (){
  54. return redirect('/cdms/docters');
  55. });
  56. return $form;
  57. }
  58. }