【发布时间】:2019-08-04 09:01:30
【问题描述】:
在我的 laravel 项目中,我使用了一个名为 LaraToaster 的包 LaraToaster
我做包裹要求的事情
LaraToaster.vue
<template>
<div></div>
</template>
<script>
export default {
props: ['message','type'],
mounted() {
this.$toast.open({
message: this.message,
type: this.type,
duration: 2000,
queue: true,
})
}
}
</script>
app.js
require('./bootstrap');
window.Vue = require('vue');
import Vue from 'vue'
import Buefy from 'buefy'
Vue.use(Buefy)
Vue.component('laratoaster', require('./components/LaraToaster.vue').default);
const app = new Vue({
el: '#app',
});
ContactController.php
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Mail;
use Toaster;
use App\Mail\ContactMail;
class ContactController extends Controller
{
public function create()
{
return view('contact.create');
}
public function store()
{
$data = request()->validate([
'name' => 'required',
'email' => 'required|email',
'message' => 'required|min:3',
]);
Mail::to('test@test.com')->send(new ContactMail($data));
Toaster::success("Your Message has been sent.");
return redirect('contact');
}
}
app.blade.php
<!DOCTYPE html>
<html class="overflow-auto" lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
// head content
</head>
<body>
<div id="app">
<main class="py-4">
<div class="container">
@yield('content')
</div>
</main>
</div>
</body>
</html>
create.blade.php
@extends('layouts.app')
@section('content')
@section('head', 'Contact Us')
<div class="columns">
<div class="column is-three-fifths is-offset-one-fifth">
{!! Toaster::toast() !!}
</div>
</div>
@endsection
组件已注册,但它给了我错误
[Vue 警告]:挂载钩子错误:“TypeError:无法读取属性 'open' of undefined"
发现于
---> 在资源/js/components/LaraToaster.vue
【问题讨论】:
标签: vue.js laravel-5.8