2017-10-09 31 views
0

ビデオチャンネルモデルのサブスクリプションシステムをセットアップします。私は私の刃テンプレートにVuejsとlaravel 5.3Laravelは定義されていませんゲストユーザーのみ

を使用し、私は

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

この

を置く(ユーザーがログインする場合)はすべて、認証モードで正常に動作しますが、ゲストモードで私のvuejsコンポーネントはいけない仕事と私はこれを取得します私のコンソール

ReferenceError: Laravel is not defined 

スクリーンショットで https://image.ibb.co/bPJCWG/laravel_Vuejs_Error_Guest.jpg 加入者は、消えて何も仕事を数える

この私のコード:

コントローラー:

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コンポーネント:

<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(); 
    } 
} 

助けてください!

答えて

1

これは、csrfが認証されたユーザーのみに機能するためです。

@If(認証::チェック())

//あなたのwindow.laravelのJSここ

@:あなたは、考慮匿名ユーザーにのようなものを取るために、あなたのjavascriptの一部を変更する必要がありますendif

+0

ありがとうアリは、残念ながら問題を解決しません。ビデオプレーヤーにはvuejsとvideojsが設定されています。ゲストモードで正常に動作します。しかし、購読コンポーネントだけが私にこのエラーを与えます。わかりません –

関連する問題