2017-10-09 5 views
0

Ich würde ein Abonnement-System für Videokanal-Modell einrichten. Ich Vuejs verwenden und Laravel 5.3Laravel ist nicht definiert Nur mit Gastbenutzer

in meine Klinge Vorlage, ich habe dies

<script> 
    window.Laravel = <?php echo json_encode([ 
     'csrfToken' => csrf_token(), 
    ]); ?> 
    <script> 

Alle in Auth-Modus funktioniert gut (wenn Benutzer-Login), aber im Gastmodus meine vuejs Komponente arbeiten nicht und ich bekomme diese zählen in meiner Konsole

ReferenceError: Laravel is not defined 

Screenshots https://image.ibb.co/bPJCWG/laravel_Vuejs_Error_Guest.jpg Abonnenten verschwinden, nichts Arbeit

diese meine Codes:

Controller:

public function show(Request $request, Channel $channel) 
{ 
    $response = [ 
     'count' => $channel->subscriptionCount(), 
     'user_subscribed' => false, 
     'can_subscribe' => false, 
    ]; 

    if($request->user()) 
    { 
     $response = array_merge($response, [ 
      'user_subscribed' => $request->user()->isSubscribedTo($channel), 
      'can_subscribe' => !$request->user()->ownsChannel($channel), 
     ]); 
    } 

    return response()->json([ 
     'data' => $response 
    ], 200); 
} 

SubscribeButton.vue Komponente:

<script> 
export default { 
    data() { 
     return { 
      //... 
     } 
    }, 
    props: { 
     //... 
    }, 
    methods: { 
     getSubscriptionStatus() { 
      this.$http.get('/subscription/' + this.channelSlug).then((response) => { 
       this.subscribers = response.body.data.count; 
       this.userSubscribed = response.body.data.user_subscribed; 
       this.canSubscribe = response.body.data.can_subscribe; 
      }) 
     } 
    }, 
    mounted() { 
     this.getSubscriptionStatus(); 
    } 
} 

Bitte um Hilfe!

Antwort

1

das ist, weil csrf nur für authentifizierte Benutzer funktioniert. Sie benötigen Javascript Teil ändern in anonyme Benutzer Rechnung zu tragen, so etwas wie:

@if (Auth :: check())

// Ihre window.laravel js hier

@ endif

+0

Dank Ali, leider löst es nicht das Problem. Der Videoplayer ist mit Vuejs und Videojs ausgestattet. Es funktioniert gut im Gastmodus. Aber nur die Subscribe-Komponente gibt mir diesen Fehler. Ich verstehe nicht –

Verwandte Themen