Я не знаю, что происходит с моим кодом в контроллере. Я просто хочу отправить электронное письмо на основе опции выбора из моего компонента VUE. Это просто говорит undefined variable request
. Я использую пакет vform от vue. Но в моем контроллере я уже определил переменную запроса с идентификатором опции select из моего компонента vue. Но когда я помещаю статическое электронное письмо, оно может отправить электронное письмо, и это сработало. Может кто-нибудь знает в чем решение? Спасибо.
Ошибка предварительного просмотра во вкладке сети
{message: "Undefined variable: request", exception: "ErrorException",…}
exception: "ErrorException"
file: "C:\Users\bustillo-ronald\Desktop\Laravel-SPA\app\Http\Controllers\API\UserController.php"
line: 196
message: "Undefined variable: request"
trace: [,…]
Мой контроллер
public function sendEmail(Request $request){
$beautymail = app()->make(\Snowfire\Beautymail\Beautymail::class);
$beautymail->send('emails.welcome', [], function($message)
{
$message
->from('test@gmail.com')
//->to('sampleemail@gmail.com')//this is working with static data
->to($request->email)
->subject('Welcome!');
});
}
Мой компонент vue с vform
<form @submit.prevent="sendEmail()">
<div class="modal-body">
<div class="form-group">
<label>Users Lsit</label>
<select v-model="form.email" name="email" id="email" class="form-control" :class="{ 'is-invalid': form.errors.has('email') }">
<option v-for="user in users.data" :key="user.id" >{{user.email}}</option>
</select>
<has-error :form="form" field="type"></has-error>
</div>
<div class="form-group">
<label>Message</label>
<textarea v-model="form.message" name="message" placeholder="Message" class="form-control" :class="{ 'is-invalid': form.errors.has('message') }"></textarea>
<has-error :form="form" field="message"></has-error>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="submit" class="btn btn-primary">Send Email</button>
</div>
</form>
Скрипт.
export default {
data() {
return {
form: new Form({
id:'',
email: '',
message: ''
}),
users: []
}
},
methods: {
getUsers() {
axios.get('api/user')
.then((res) => {
this.users = res.data
})
},
sendEmail(){
this.form.post('api/sendemail')
.then(()=>{
$('#exampleModal').modal('hide');
$(".modal-backdrop").remove();
swal.fire("Email sent!", "", "success");
})
.catch((e)=>{
console.log(e)
})
}
},
created() {
this.getUsers();
console.log('Component mounted.')
}
}
Vue devtools ![enter image description here](https://i.stack.imgur.com/AUPS2.png)