App\Repositories\User\UserRepository::create PHP Method

create() public method

public create ( $requestData )
    public function create($requestData)
    {
        $settings = Settings::first();
        $password = bcrypt($requestData->password);
        $role = $requestData->roles;
        $department = $requestData->departments;
        $companyname = $settings->company;
        if ($requestData->hasFile('image_path')) {
            if (!is_dir(public_path() . '/images/' . $companyname)) {
                mkdir(public_path() . '/images/' . $companyname, 0777, true);
            }
            $settings = Settings::findOrFail(1);
            $file = $requestData->file('image_path');
            $destinationPath = public_path() . '/images/' . $companyname;
            $filename = str_random(8) . '_' . $file->getClientOriginalName();
            $file->move($destinationPath, $filename);
            $input = array_replace($requestData->all(), ['image_path' => "{$filename}", 'password' => "{$password}"]);
        } else {
            $input = array_replace($requestData->all(), ['password' => "{$password}"]);
        }
        $user = User::create($input);
        $user->roles()->attach($role);
        $user->department()->attach($department);
        $user->save();
        Session::flash('flash_message', 'User successfully added!');
        //Snippet in Master.blade.php
        return $user;
    }

Usage Example

 /**
  * Store a newly created resource in storage.
  *
  * @param UserCreateRequest $request
  *
  * @return mixed
  */
 public function store(UserCreateRequest $request)
 {
     return $this->user->create($request->all());
 }