#laravel #vue.js
#laravel #vue.js
Вопрос:
Я получаю эту ошибку
Свойство или метод «test» не определены в экземпляре, но на них ссылаются во время визуализации.
Я не уверен, почему я это понимаю. Насколько я знаю, я test
правильно вызываю.
Вот мой код
Мой контроллер
$test = [
'test' => 'test'
]
return view('index', ['test' => $test]);
Мой блейд-файл
@section('content')
<div id="index">
<index :test="test"></index>
</div>
@endsection
Мой index.js
Vue.component('index', require('./components/Index').default);
if (document.getElementById('index') != null) {
const app = new Vue({
el: '#index'
});
}
и вот мой Index.vue
<template>
<div>
My vue template
</div>
</template>
<script>
export default {
props: ['test'],
data() {
return {
}
},
methods: {
},
mounted() {
},
}
</script>
Возможно, я забыл что-то добавить, но я не уверен
Комментарии:
1. вам нужно передать
props
и, как это, вы не можете2. @KamleshPaul — но разве я не делаю это уже в моем файле блейда и моем Index.vue?
3.
<index test="test"></index>
попробуйте это4. Я получаю
Trying to get property 'test' of non-object
сообщение об ошибке
Ответ №1:
Измените файл блейда на:
@section('content')
<div id="index">
<index test="{{ $test['test'] }}"></index>
</div>
@endsection
Комментарии:
1. Когда я это сделал, я получил эту ошибку
htmlspecialchars() expects parameter 1 to be string, array given
, и когда я изменил{{ }}
значение на be{!! !!}
, я получилarray to string converstion
ошибку2. Вот почему вы должны отправлять элемент массива
$test->test
, а не полный массив3. Когда я это сделал, я получил эту ошибку
Trying to get property 'test' of non-object
4. Ах, извините, обновил мой ответ,
$test['test']
это способ получить к нему доступ