Попытка получить свойство на необъекте с помощью Laravel 5.1 и Vue 2

У меня есть загрузка URL с данными, переданными из Laravel. Я помещаю данные в данные VUE, используя синтаксис блейда, как это:

data: {
id: "{!! ($header->id) !!}",
vendor: '{!! $header->vendor_name !!}',
orderDate: '{!! $header->orderDate !!}',
list: [],
}

Все идет нормально. Данные установлены правильно.

Затем есть метод, который срабатывает при щелчке строки в таблице:

methods: {
findInventoryItem: function(rowId) {
var header = this.id;
url = '{!! url('part-order/find-inventory') !!}' + '?headerId=' + header + '&rowId=' + rowId;
window.location.href = url;
}

URL настроен правильно.

Ошибка происходит, когда я щелкаю строку таблицы. Эта ошибка выскакивает.

Trying to get property of non-object (View: /code/zone/resources/views/parts/part-order.blade.php)

Обратите внимание, что ошибка не с запрошенным URL, а с существующим URL.

Ошибка вызвана этой строкой:

id: "{!! ($header->id) !!}",

Есть идеи о том, что здесь происходит?

2

Решение

Хорошо, это ошибка новичка, но я нашел проблему. Хуже всего то, что я сделал эту ошибку раньше. Это не имело никакого отношения к Ларавел или Вью. Иногда объяснение вашей проблемы и обсуждение ее с кем-то помогает выявить и выяснить, что вы сделали неправильно. Спасибо @Laerte за обсуждение со мной. Это помогло мне найти решение.

Проблема была в маршрутах. Следующий маршрут мешал.

Route::get('part-order/{id}', 'PartOrderController@showOrder');

и мой запрошенный маршрут был

Route::get('part-order/find-inventory', 'PartOrderController@findInventoryNumber');

Поскольку мой первый маршрут содержал переменную во втором сегменте, я не мог использовать другой маршрут без добавления третьего сегмента. Потому что второй сегмент был интерпретирован как переменная и поэтому никогда не достигал его в моем запросе.

Я исправил маршрут так:

Route::get('part-order/find-inventory/inv', 'PartOrderController@findInventoryNumber');
1

Другие решения

Эта ошибка говорит о том, что $header является null, Вы должны проверить это для null, Что-то вроде:

{!! is_null($header) ? 0 : $header->id !!}

Или же:

@if (!is_null($header))
{!! $header->id !!}
@endif
0

По вопросам рекламы [email protected]