2017-09-12 4 views
1

Ich habe eine Vue-Komponente, die eine Nachricht senden wird und ich möchte den angemeldeten Benutzernamen senden. Ich verwende Laravel 5,5So rufen Sie den Benutzernamen in Vue-Komponente mit Laravel

methods:{ 
     sendMessage(){ 
      this.$emit('messagesent', { 
       message:this.messageText, 
       user: { 
        name : {{Auth()::user()->name}} //Here is where it should be 
       } 
      }); 
      this.messageText = ''; 
     } 
    } 

Ich habe bereits versucht

{{Auth()::user()->name}} 
Auth()::user()->name 

Beide Fehler geben werden. Wie kann ich den Namen abrufen?

+0

Übergeben Sie den Benutzernamen als eine Stütze und verwenden Sie es wie Sie 'this.messageText' verwenden. – Samsquanch

+0

Mögliches Duplikat von [PHP-Variable an Vue-Komponenteninstanz übergeben] (https://stackoverflow.com/questions/41520258/pass-php-variable-to-vue-component-instance) – Samsquanch

Antwort

2

auf Ihrem Ansatz ab, kann dies auf verschiedene Weise
1. Führen Sie den Benutzernamen aus der Sicht <send-message user={{ $user->username }} ></send-message> dann in Ihrem vuejs Komponente

export default { 
    props: ['user'], 
    data(){ 
     return { 
      user: '' 
     } 
    }, 
    methods: { 
     sendMessage(){ 
      var user = JSON.parse(this.user) 
      //do you thing here 
     } 
    }, 
} 

2. Binden Sie die Benutzerinformationen zu Fenster erreichen sein Objekt auf Ihrer Seite header

<script> 
    window.user = {!! json_encode([ 
     'user' => $user->username, 
    ]) !!}; 
</script> 
+0

der erste Weg, der für mich funktioniert hat, tut mir leid, wenn es so ist war eine offensichtliche Frage. neu in Vue. –

+0

nicht verwandt aber auf jeden Fall haben Sie Erfahrung mit Drücker mit Laravel und Vue? Es besteht also keine Notwendigkeit für eine neue Frage –

+0

Was möchten Sie erreichen? @CarlosF –

Verwandte Themen