Замена лезвия laravel на vue

У меня есть существующий шаблон блейда laravel, и я переписываю его, используя компоненты Vue внутри шаблона блейда. Например, одна существующая строка в шаблоне блейда:

<button class = "btn-remove" onclick = "removeItem('{{ $item->id }}', this);"></button>

Это ссылка на функцию php с именем removeItem.
Есть ли способ вызвать функцию php в новом компоненте Vue или мне нужно переделать функцию php в javascript?

Что такое удалить элемент? Я не думаю, что это «функция php» в соответствии с вашим кодом.

Almaju 12.03.2019 02:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
1 031
1

Ответы 1

Я полагаю, вы имеете в виду, что шаблон ссылается на функцию removeItem, которая определена где-то в сценариях JS, которые выполняются с вашим лезвием.

Если вы переносите всю колонку в экземпляр VueJs, вам необходимо переместить методы, используемые компонентом Vue, в его определение ViewModel.

Вам также нужно будет передать любые данные, поступающие от PHP, как prop или получить их из API. Чтобы компонент мог иметь к нему доступ после его рендеринга.

В вашем примере компонент будет выглядеть примерно так (с использованием реквизита).

Vue.component('MyComponent', {
    template:  `
        <div>
            <button class = "btn-remove" @click = "removeItem"></button>
        </div>
    `,
    props: {
        itemId: String
    },
    methods: {
        removeItem() {
            // Handle click event
            this.$emit('remove', this.itemId); // for example
        }
    }
})

И в вашем файле блейда вы должны заменить на:

<MyComponent item-id = "{{$item->id}}"/>

Vue заменит приведенный выше шаблон шаблоном, указанным в вашем компоненте, а «привязки» PHP будут переданы в виде текста в ваш HTML.

спасибо Даниэль. Единственный экземпляр removeFromCart — это функция php внутри контроллера аккаунта: public function removeFromCart(CartRemoveFormRequest $request) { logic here}

jjoan 12.03.2019 03:35

Вам, вероятно, потребуется раскрыть это через конечную точку API.

Daniel Ormeño 12.03.2019 03:35

Другие вопросы по теме