Могу ли я использовать контроллер PHP (laravel) прямо внутри моего представления VueJS? - PullRequest
0 голосов
/ 16 апреля 2019

Я добавил панель поиска с результатами с помощью VueJS, и это прекрасно работает с простым запросом.Теперь я хотел бы сделать то же самое, но с более сложными фильтрами.

Вот мой поисковый компонент VueJS

<button class="btn btn-primary" @click="search" @keyup.enter="search" type="button">Search</button>

methods: {
            search() {
                axios.get('/races/find?q=%'+ this.query+'%').then(
                    response => {
                        this.races=response.data;
                    }
                );
            }
        }

в web.php

Route::get('/race/find', 'RacesController@searchRaces');

вRacesController

public function searchRaces(Request $request)
{
    return DB::connection('mysql1')->select(REQUEST);
}

Это прекрасно работает.

Теперь у меня будут более сложные фильтры с датами, ползунками, несколькими данными.Поэтому я не могу передать его непосредственно в своем запросе, или у меня будет очень длинный запрос с 15 значениями ... Можно ли вызвать мой контроллер Laravel напрямую в моем представлении Vue?

Большое спасибо зазаранее

1 Ответ

1 голос
/ 16 апреля 2019

Вы не можете.Методы контроллера должны вызываться через HTTP.Сложные фильтры, такие как даты и т. Д., Являются типичными, поэтому не беспокойтесь об этом.Измените свой запрос на публикацию и назначьте ему данные:

search() {
    let filters = {
        query: this.query,
        date: this.date,
        // ...
    };
    axios.post('/races/find', filters).then(
        response => {
            this.races=response.data;
        }
    );
}

маршруты в web.php:

Route::post('/race/find', 'RacesController@searchRaces');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...