<template>
<title>
Добавить кандидата</title>
<Navbar />
<MDBRow center style="margin-bottom: 3%; margin-top: 3%;">
<MDBCol md="6">
<div class="card">
<div class="card-body">
<form @submit.prevent="submit">
<div v-if="errors.nickname">{{ errors.nickname }}sdfsdf</div>
<MDBInput type="text" label="Игровой ник" id="nickname" v-model="form.nickname" wrapperClass="mb-4" />
<MDBInput type="text" label="Реальное имя" id="real_name" v-model="form.real_name" wrapperClass="mb-4" />
<MDBInput type="text" label="Лидерства" id="leaderships" v-model="form.leaderships" wrapperClass="mb-3" />
<MDBInput type="text" label="Форумный аккаунт" id="forum_link" v-model="form.forum_link" wrapperClass="mb-3" />
<div v-if="errors.vkontakte">{{ errors.vkontakte }}</div>
<MDBInput type="text" label="Вконтакте" id="vkontakte" v-model="form.vkontakte" wrapperClass="mb-3" />
<MDBInput type="text" label="О кандидате" id="about" v-model="form.about" wrapperClass="mb-3" />
<MDBRow class="mb-1">
<MDBCol class="d-flex justify-content-center">
<MDBBtnGroup>
<MDBRadio :btnCheck="true" :wrap="false" labelClass="btn btn-secondary" label="Администратор" name="options" value="1" v-model="form.type" />
<MDBRadio :btnCheck="true" :wrap="false" labelClass="btn btn-secondary" label="Помощник" name="options" value="2" v-model="form.type" />
</MDBBtnGroup>
</MDBCol>
<MDBCol class="d-flex justify-content-center">
<MDBBtn type="submit" style="max-width: 80%;" color="primary" block> Начать выдвижение кандидата </MDBBtn>
</MDBCol>
</MDBRow>
</form>
</div>
</div>
</MDBCol>
</MDBRow>
</template>
<script>
import Navbar from '../Components/Navbar.vue';
import {
MDBRow,
MDBCol,
MDBInput,
MDBCheckbox,
MDBBtn,
MDBIcon,
MDBRadio,
MDBBtnGroup
} from "mdb-vue-ui-kit";
export default {
props: {
errors: Object,
},
components: {
'Navbar': Navbar,
MDBRow,
MDBCol,
MDBInput,
MDBCheckbox,
MDBBtn,
MDBIcon,
MDBRadio,
MDBBtnGroup
},
data() {
return {
form: {
nickname: '',
real_name: '',
leaderships: '',
vkontakte: '',
about: '',
forum_link: '',
type: 1
}
}
},
methods: {
submit() {
this.$inertia.post('/add', this.form)
},
},
}
</script>
ublic function store(Request $request) {
$valid = $request->validate(
[
'nickname' => ['required','max:64','string'],
'real_name' => ['required','max:64','string'],
'about' => ['required','max:512','string'],
'type' => ['required','integer','max:4'],
'forum_link' => ['required','url'],
'vkontakte' => ['required','url'],
'leaderships' => ['required','string','max:512']
],
[
'nickname.required' => 'Поле никнейм должно быть заполнено',
'nickname.max' => 'Максимум 64 символа',
'nickname.string' => 'Никнейм должен быть строкой',
'real_name.required' => 'Поле имя должно быть заполнено',
'real_name.max' => 'Максимум 64 символа',
'real_name.string' => 'Поле должно быть строкой',
'about.required' => 'Поле должно быть заполнено',
'about.max' => 'Максимум 512 символов',
'about.string' => 'Поле должно быть строкой',
'type.required' => 'Не выбран тип выдвижения',
'vkontakte.required' => 'Не указан вконтакте',
'vkontakte.url' => 'Вконтакте должен быть ссылкой',
'leaderships.required' => 'Лидерства должны быть заполнены',
'leaderships.string' => 'Error',
'leaderships.max' => 'Максимум 512 символов'
]
);
Conversation::query()->create([
'user_id' => Auth::id(),
'nickname' => $valid['nickname'],
'about' => $valid['about'],
'real_name' => $valid['real_name'],
'leaderships' => $valid['leaderships'],
'who_close' => null,
'type' => $valid['type'],
'vkontakte' => $valid['vkontakte'],
'forum_link' => $valid['forum_link']
]);
}
public function store(Request $request) {
$valid = $request->validate(
[
'nickname' => ['required','max:64','string'],
'real_name' => ['required','max:64','string'],
'about' => ['required','max:512','string'],
'type' => ['required','integer','max:4'],
'forum_link' => ['required','url'],
'vkontakte' => ['required','url'],
'leaderships' => ['required','string','max:512']
],
[
'nickname.required' => 'Поле никнейм должно быть заполнено',
'nickname.max' => 'Максимум 64 символа',
'nickname.string' => 'Никнейм должен быть строкой',
'real_name.required' => 'Поле имя должно быть заполнено',
'real_name.max' => 'Максимум 64 символа',
'real_name.string' => 'Поле должно быть строкой',
'about.required' => 'Поле должно быть заполнено',
'about.max' => 'Максимум 512 символов',
'about.string' => 'Поле должно быть строкой',
'type.required' => 'Не выбран тип выдвижения',
'vkontakte.required' => 'Не указан вконтакте',
'vkontakte.url' => 'Вконтакте должен быть ссылкой',
'leaderships.required' => 'Лидерства должны быть заполнены',
'leaderships.string' => 'Error',
'leaderships.max' => 'Максимум 512 символов'
]
);
Conversation::query()->create([
'user_id' => Auth::id(),
'nickname' => $valid['nickname'],
'about' => $valid['about'],
'real_name' => $valid['real_name'],
'leaderships' => $valid['leaderships'],
'who_close' => null,
'type' => $valid['type'],
'vkontakte' => $valid['vkontakte'],
'forum_link' => $valid['forum_link']
]);
return back()->withErrors($valid);
}
<template>
<title>Добавить кандидата</title>
<Navbar />
<MDBRow center style="margin-bottom: 3%; margin-top: 3%;">
<MDBCol md="6">
<div class="card">
<div class="card-body">
<form @submit.prevent="submit">
<div v-if="errors.has('nickname')">{{ errors.first('nickname') }}</div>
<MDBInput type="text" label="Игровой ник" id="nickname" v-model="form.nickname" wrapperClass="mb-4" />
<div v-if="errors.has('real_name')">{{ errors.first('real_name') }}</div>
<MDBInput type="text" label="Реальное имя" id="real_name" v-model="form.real_name" wrapperClass="mb-4" />
<div v-if="errors.has('about')">{{ errors.first('about') }}</div>
<MDBInput type="text" label="О кандидате" id="about" v-model="form.about" wrapperClass="mb-3" />
<div v-if="errors.has('type')">{{ errors.first('type') }}</div>
<MDBRow class="mb-1">
<MDBCol class="d-flex justify-content-center">
<MDBBtnGroup>
<MDBRadio :btnCheck="true" :wrap="false" labelClass="btn btn-secondary" label="Администратор" name="options" value="1" v-model="form.type" />
<MDBRadio :btnCheck="true" :wrap="false" labelClass="btn btn-secondary" label="Помощник" name="options" value="2" v-model="form.type" />
</MDBBtnGroup>
</MDBCol>
<MDBCol class="d-flex justify-content-center">
<MDBBtn type="submit" style="max-width: 80%;" color="primary" block> Начать выдвижение кандидата </MDBBtn>
</MDBCol>
</MDBRow>
</form>
</div>
</div>
</MDBCol>
</MDBRow>
</template>