<template> <div class="main-member-info"> <form @submit.prevent="submit"> <input type="text" v-model="userName" placeholder="請輸入你的姓名" class="name-style" maxlength="20"/> <div class="sex"> <select v-model="selectedSex"> <option>boy</option> <option selected = "selected">girl</option> </select> </div> <input type="text" v-model="phoneNumber" placeholder="請輸入你的手機號" class="phone-number-style"/> <div class="guide-style"> <select v-model="selectedGuild"> <option selected="selected" value="">請選擇一個導購: </option> <option v-for="guild in guilds" value ="{{ guild.name }}">{{ guild.name }}</option> </select> </div> <input type="submit" value ="註冊" class="register-style"/> </form> </div> </template> <script> import {setDocumentTitle, showToast, checkTel} from '../../../../../static/h5/utils/interaction' export default { data () { return { userName: '', selectedSex: '', phoneNumber: '', guilds: [], selectedGuild: '' } }, ready () { this.getAllEmployees() setDocumentTitle('會員註冊') }, methods: { getAllEmployees () { let _this = this let params = {} // /omnisocials-backend/src/backend/modules/main/controllers/EmployeeController.php(actionSelectEmployee()) this.$resource('main/employee/select-employee', params).get().then((resp) => { _this.guilds = _this.guilds.concat(resp.data.items) }, (resp) => { showToast('導購導出失敗,請稍後再試') }) }, submit () { if (!this.validation()) { return } let _this = this let params = { userName: this.userName, selectedSex: this.selectedSex, phoneNumber: this.phoneNumber, selectedGuild: this.selectedGuild } this.$resource('main/employee/register-member').save(params).then((resp) => { _this.errorMessages = resp.data.item showToast(_this.errorMessages) }, (resp) => { showToast('註冊失敗!') }) }, validation () { let name = '' let tel = '' if (!this.userName) { showToast('請輸入姓名!') return false } if (!this.phoneNumber) { showToast('請輸入手機號碼!') return false } if (!checkTel(this.phoneNumber)) { showToast('手機號格式不正確') return false } if (!this.selectedGuild) { showToast('請選擇導購!') return false } return true } } } </script> <style lang="less"> @import './registermember.less'; </style>
use backend\modules\main\models\MyEmployee;php
use backend\modules\main\models\MyRegisterMember;前端
class EmployeeController extends BaseController { // 不須要驗證的方法 public $noAuthActions = ['select-employee', 'register-member']; //從數據庫導出導購方法(多個導購在前臺造成列表) public function actionSelectEmployee() { LogUtil::info('in controller, get guilds-employees', 'main'); $employees = []; $employees = MyEmployee::getEmployeeList(); //LogUtil::info('in controller, finish query', 'main'); //LogUtil::info( $employees, 'main'); return ['items' => $employees]; } //註冊會員方法 public function actionRegisterMember() { $params = $this->getParams(); LogUtil::info('in controller, register member', 'main', ['user' => $params]); $MyRegisterMember = new MyRegisterMember(); if (empty($params['userName'])) { return $this->generateResult(5001, '請填寫姓名'); } if (empty($params['selectedSex'])) { return $this->generateResult(5002, '請選擇性別'); } if (empty($params['phoneNumber'])) { return $this->generateResult(5003, '請填寫電話'); } if (empty($params['selectedGuild'])) { return $this->generateResult(5004, '請選擇導購'); } $MyRegisterMember->name = $params['userName']; $MyRegisterMember->gender = $params['selectedSex']; $MyRegisterMember->phone = $params['phoneNumber']; $MyRegisterMember->guild = $params['selectedGuild']; $MyRegisterMember->save(); if ($MyRegisterMember->errors) { return self::generateResult(300, '對不起,服務器錯誤,註冊失敗'); } else { return self::generateResult(200, '註冊成功!'); } } private static function generateResult($errorNumber, $errorMessage) { LogUtil::info('in controller, register member info', 'main', ['message' => $errorMessage]); return ['item' => $errorMessage]; } // public function generateResult($number, $errorMessage){ // $errorMessages = []; // array_push($errorMessages, self::getErrorMessages($number, $errorMessage)); // return ['item' => $errorMessages]; // } }
<?php namespace backend\modules\main\models; use backend\components\BaseModel; class MyEmployee extends BaseModel { public static function collectionName() { return 'employee'; } public function attributes() { return ['name', 'gender', 'phone']; } public function safeAttributes() { return ['name', 'gender', 'phone']; } public function fields() { return ['name', 'gender', 'phone']; } public static function getEmployeeList() { $employees=self::find()->all(); return $employees; } }
<?php namespace backend\modules\main\models; use backend\components\BaseModel; class MyRegisterMember extends BaseModel { public static function collectionName() { return 'member'; } public function attributes() { return array_merge( parent::attributes(), ['name', 'gender', 'phone', 'guild']); } public function safeAttributes() { return array_merge( parent::attributes(), ['name', 'gender', 'phone', 'guild']); } public function fields() { return array_merge( parent::attributes(), ['name', 'gender', 'phone', 'guild']); } }