dauren101
@dauren101
Python, Django ,Vue.js

Как получить массив из php?

Есть массив:

$this->dates[]=date("Y-m-d", strtotime('monday this week')); 
        $this->dates[]=date("Y-m-d", strtotime('tuesday this week')); 
        $this->dates[]=date("Y-m-d", strtotime('wednesday this week')); 
        $this->dates[]=date("Y-m-d", strtotime('thursday this week')); 
        $this->dates[]=date("Y-m-d", strtotime('friday this week')); 
        $this->dates[]=date("Y-m-d", strtotime('saturday this week'));

Отдаю в laravel return response()->json(['dates'=>$this->dates]); на клиент:

export default {
  data(){
    return {
      dates:  []
    }
  },
 mounted() {
    let self = this;
    axios
      .post('http://localhost:8000/foodmenulist')
      .then(this.dates.push(response['dates'] ) ),
   
      )
       .catch(function (error) {
            console.log(error.data);
             self.$router.push('/');
            
          });
  },

Но вместо массива получаю undefined.
  • Вопрос задан
  • 198 просмотров
Решения вопроса 2
0xD34F
@0xD34F Куратор тега Vue.js
.then(this.dates.push(response['dates'] ) ),

Всего одна строка, а столько косяков.
  • Синтаксически некорректный мусор - что за запятая на конце? И ещё пересчитайте закрывающие скобки - одна лишняя, здесь, или на две строки ниже.
  • В then надо передавать функцию. Которая в качестве параметра принимает непонятно откуда берущийся у вас в данный момент response.
  • Непосредственно в response никакого свойства dates не будет - получаемые данные доступны через свойство data.
  • Свойство компонента dates, должно, судя по названию, содержать массив дат. Свойство данных ответа dates, судя по названию, содержит массив дат. Так зачем второе засовывать внутрь первого целиком, как один элемент? Надо или заменить значение свойства компонента значением из ответа, или сделать даты из ответа элементами свойства компонента.

Исправляем:

.then(response => this.dates = response.data.dates)
// или
.then(response => this.dates.push(...response.data.dates))
Ответ написан
dauren101
@dauren101 Автор вопроса
Python, Django ,Vue.js
response['data']['dates']
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы