/** * Create and store Breeder profile data to database and * Associate User to Breeder user type as well * * @param BreederProfileRequest $request * @return Redirect */ public function storeProfile(BreederProfileRequest $request) { $user = $this->user; $breeder = Breeder::create($request->only(['officeAddress_addressLine1', 'officeAddress_addressLine2', 'officeAddress_province', 'officeAddress_zipCode', 'office_landline', 'office_mobile', 'website', 'produce', 'contactPerson_name', 'contactPerson_mobile'])); $farmAddressArray = []; for ($i = 1; $i <= count($request->input('farmAddress.*.*')) / 8; $i++) { $farmAddress = new FarmAddress(); $farmAddress->name = $request->input('farmAddress.' . $i . '.name'); $farmAddress->addressLine1 = $request->input('farmAddress.' . $i . '.addressLine1'); $farmAddress->addressLine2 = $request->input('farmAddress.' . $i . '.addressLine2'); $farmAddress->province = $request->input('farmAddress.' . $i . '.province'); $farmAddress->zipCode = $request->input('farmAddress.' . $i . '.zipCode'); $farmAddress->farmType = $request->input('farmAddress.' . $i . '.farmType'); $farmAddress->landline = $request->input('farmAddress.' . $i . '.landline'); $farmAddress->mobile = $request->input('farmAddress.' . $i . '.mobile'); array_push($farmAddressArray, $farmAddress); } $breeder->users()->save($user); $breeder->farmAddresses()->saveMany($farmAddressArray); $user->update_profile = 0; $user->save(); return redirect()->route('breeder.edit')->with('message', 'Profile completed.'); }
/** * Create an initial account for the breeder * * @param \Illuminate\Http\Request $request * @return View */ public function createUser(Request $request) { $validator = $this->validator($request->all()); if ($validator->fails()) { $this->throwValidationException($request, $validator); } $verCode = str_random('10'); // create a verification code $password = $this->generatePassword(); // generate the initial password for the breeder and save it to a variable to get the original password before encryption $user = $this->create($request->all(), $verCode, $password); // create a user instance $user->assignRole('breeder'); // assign a breeder role to it $breeder = Breeder::create([])->users()->save($user); // create a breeder instance for that user // data to be passed in the email $data = ['email' => $request->input('email'), 'password' => $password]; $adminID = Auth::user()->id; $adminName = Auth::user()->name; // create a log entry for the action done AdministratorLog::create(['admin_id' => $adminID, 'admin_name' => $adminName, 'user' => $data['email'], 'category' => 'Create', 'action' => 'Created user account for ' . $data['email']]); Mail::send('emails.credentials', ['email' => $request->input('email'), 'password' => $password], function ($message) use($data) { // send an email containing the credential of the user to the input email $message->to($data['email'])->subject('Breeder Credentials for Swine E-Commerce PH'); }); return Redirect::back()->withMessage('User Created!'); // redirect to the page and display a toast notification that a user is created }