Я использую пакет laravel-searchable
из Spatie
, чтобы помочь мне с поиском в моем приложении Laravel
.
У меня есть следующий блок кода внутри моего SearchController.php
файла:
public function searchCategories(Request $request) {
$results = (new Search())
->registerModel(Category::class, ['title', 'id'])
->search($request->input('query'));
return response()->json($results);
}
Значения возвращаются через функцию vue.js
с некоторой помощью: axios
:
if(document.getElementById("search-all")) {
const app = new Vue({
el: '#search-all',
data() {
return {
query: null,
results: [],
isActive: false
};
},
watch: {
query(after, before) {
this.searchAll();
this.isActive = true;
}
},
methods: {
searchAll() {
axios.get('/search', {params: {query: this.query}})
.then(response => this.results = response.data)
.catch(error => {
});
}
}
});
}
Затем у меня есть ввод формы, который вызывает функцию vue.js
и которая получаетHTML
следующим образом:
<div v-if="results.length > 0 && query" class="results" v-bind:class="{ show : isActive}">
<div class="row main-row">
<div v-for="result in results.slice(0,10)" :key="result.id" class="col-lg-6">
<a :href="result.url">
<div class="card main-card result-card course-card">
<div class="course-card-content">
<h6 v-text="result.title"> </h6>
<hr>
</div>
</div>{{-- CARD END--}}
</a>
</div><!-- COL-4 END-->
</div><!-- ROW END-->
</div><!-- OVERVIEW END-->
Все это работает нормально, JSON
извлекается и отображается. Однако мне нужны некоторые функции в переменной PHP
, или я хочу иметь возможность использовать данные JSON
внутри моих функций Blade
.
Я пытался вернуть массив из моей searchCategories()
функции следующим образом:
public function searchCategories(Request $request) {
$results = (new Search())
->registerModel(Category::class, ['title'])
->search($request->input('query'));
$res = response()->json($results);
return array($results, $res);
}
Однако я не знаю, как получить данные JSON
сейчас.
Резюме:
Я бы хотел использовать как переменную PHP
, так и данные JSON
, которые возвращает моя функция.
Пример использования, которое я имею в виду: например, внутри моих результатов есть фоновое изображение, например:
<div class="course-image" style="background: url({{asset('./img/categories/ . $res->image_name')}});"></div>
Это (насколько я знаю) может быть достигнуто толькоимея доступ к переменной PHP
помимо данных JSON
. Или возможность использовать эти JSON
данные в моей функции blade
asset()
.