Как выполнить операцию на PHP и вернуть данные в Laravel Vue Inertia ⇐ Php
Как выполнить операцию на PHP и вернуть данные в Laravel Vue Inertia
Извините за, возможно, тривиальный вопрос, но мне, вероятно, не хватает какой-то базовой концепции использования laravel, инерции с vue js. Мне нужно что-то вроде этого:
класс InvoiceController расширяет контроллер { публичные $items = [ [ 'имя' => 'тест1', 'цена' => 25 ], [ 'имя' => 'test2', 'цена' => 23 ] ]; индекс публичной функции() { return inertia('Счета/Индекс', [ 'invoice' => $data, //большой массив данных 'items' => $this->items ]); } публичная функция addItem() { $this->items[] = [ 'имя' => 'test3', 'цена' => ранд(10,1000) ] } }
и компонент Vue
импортировать {маршрутизатор} из '@inertiajs/vue3'; const props = defineProps({ счет-фактура: Объект, предметы: Объект, }) const addItem = () => { /* не знаю, что здесь использовать, я хочу добавить элемент, выполнить некоторые вычисления в PHP и перезагрузить только элементы, а не все данные */ } {{ item.name }}{{ item.price }} Добавить элемент Я правда не знаю, что сделать, чтобы сделать это максимально просто и не переносить много данных....
Когда я использую запрос GET router.reload(), я могу использовать only и перезагружать только элементы. Но я не хочу, чтобы в URL-адресе было что-то вроде /invoices?add_item=true, а в методе индекса контроллера спрашивайте if($request->has('add_item'))... Вероятно, это сработало бы, но это не хорошее решение
Когда я делаю POST-запрос router.post('invoices/add_idem') к функции addItem в контроллере, он, наконец, попадает в функцию индекса и отправляет все данные, но я просто хочу отправить данные элементов . И я читал, что все запросы по инерции должны возвращать ответ по инерции, я не могу вернуть просто массив данных в формате json и остаться на той же странице.
Вероятно, мне не хватает какой-то основной цели инерции, потому что очень часто нажатие кнопки выполняет некоторые операции и возвращает рассчитанные данные без изменения URL-адреса... и передает огромный объем данных...
Извините за, возможно, тривиальный вопрос, но мне, вероятно, не хватает какой-то базовой концепции использования laravel, инерции с vue js. Мне нужно что-то вроде этого:
класс InvoiceController расширяет контроллер { публичные $items = [ [ 'имя' => 'тест1', 'цена' => 25 ], [ 'имя' => 'test2', 'цена' => 23 ] ]; индекс публичной функции() { return inertia('Счета/Индекс', [ 'invoice' => $data, //большой массив данных 'items' => $this->items ]); } публичная функция addItem() { $this->items[] = [ 'имя' => 'test3', 'цена' => ранд(10,1000) ] } }
и компонент Vue
импортировать {маршрутизатор} из '@inertiajs/vue3'; const props = defineProps({ счет-фактура: Объект, предметы: Объект, }) const addItem = () => { /* не знаю, что здесь использовать, я хочу добавить элемент, выполнить некоторые вычисления в PHP и перезагрузить только элементы, а не все данные */ } {{ item.name }}{{ item.price }} Добавить элемент Я правда не знаю, что сделать, чтобы сделать это максимально просто и не переносить много данных....
Когда я использую запрос GET router.reload(), я могу использовать only и перезагружать только элементы. Но я не хочу, чтобы в URL-адресе было что-то вроде /invoices?add_item=true, а в методе индекса контроллера спрашивайте if($request->has('add_item'))... Вероятно, это сработало бы, но это не хорошее решение
Когда я делаю POST-запрос router.post('invoices/add_idem') к функции addItem в контроллере, он, наконец, попадает в функцию индекса и отправляет все данные, но я просто хочу отправить данные элементов . И я читал, что все запросы по инерции должны возвращать ответ по инерции, я не могу вернуть просто массив данных в формате json и остаться на той же странице.
Вероятно, мне не хватает какой-то основной цели инерции, потому что очень часто нажатие кнопки выполняет некоторые операции и возвращает рассчитанные данные без изменения URL-адреса... и передает огромный объем данных...
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение