LaravelコントローラからVueJSコンポーネントのビューに渡されるPHP変数の設定に問題があります。PHP変数をvueコンポーネントに設定するには
ここには、ビューとデータの配列を返すコントローラコードがあります。
public function showUser($username)
{
try {
$accountSid = Auth::user()->account_sid;
$user = $this->webrtcUser->retrieveByUsername($accountSid, $username);
if(count($user)) {
return view('partials.webrtc.edit_user', $user);
} else {
# EDGE CASE: This should never happen, implemented just in case.
$errorResponse = [
"Status" => "Error",
"Data" => "A user with the given username does not exist."
];
return response()->json($errorResponse, 422);
}
} catch (Exception $e) {
$e->getMessage();
}
}
このようなVueインスタンスは、編集ユーザーをコンポーネントとして持っています。
const editUser = Vue.component('edit-user', require('./components/pages/webrtc/EditUserPage.vue'))
const usersVue = new Vue({
el: "#usersVue",
components: {
'edit-user': editUser
},
data() {
return {
userData: {}
}
},
mounted() {
console.log('Component Ready.');
}
});
私はこのようにしているedit-usersコンポーネントコードでPHP変数にアクセスしようとしています。
EditUser.vue
<template>
<div>{{ this.responseData.username }}</div>
</template>
<script>
export default {
props: ['responseData'],
data() {
return {
userData: {}
}
},
methods: {
},
filters: {
moment(date) {
return moment(date).format('dddd, MMMM Do YYYY');
}
},
components: {
},
mounted() {
console.log(this.responseData);
}
}
</script>
partials.webrtc.edit_user.blade.php
@extends('layouts.user_layout')
@section('title', 'Edit User')
@section('content')
<edit-user :response-data="{{ json_encode($user) }}"></edit-user>
@endsection
注意すべきいくつかの他の事: $ユーザー変数はコントローラによって戻されているが、カサンドラですクエリ結果オブジェクト。
私は、コントローラの$ user変数をjson_encodingしてから戻しました。
現在のメソッドを実行しようとしているときに、未定義の変数$ userエラーが発生しました。
なぜ私はVueコンポーネントの小道具にPHP変数を設定できないのですか?