laravel - 不能在 Laravel + Vue 项目中使用 dd() 和 var_dump 内部函数?
问题描述
我正在尝试纠正 Vue + Laravel 项目中的搜索输入错误。
出于某种原因,当搜索输入中使用多个单词时,不会显示产品,但会显示以产品为特色的项目。
例如:我有 4 种类型的办公桌:Desk Green、Desk、Desk Tall 和 Desk Grey。如果我搜索“Desk”,所有产品都会显示出来,并且还会显示这些桌子所在的室内设计项目。如果我专门搜索“Desk Green”,该函数会返回一个空的产品数组,但是以“Desk Green”为特色的室内设计项目会正常显示,即使正在使用相同的功能。
我正在使用两个主要功能,我将在下面粘贴。一个在 Vue 组件内部,一旦安装组件就会被调用。该函数使用 axios 将数据发布到控制器中的另一个函数。似乎我无法在控制器函数中使用 var_dump() 或 dd() ,我不知道为什么。我是一个尝试在一个相当复杂的项目中工作的初学者,所以对我来说有点困难。
这是组件内部的函数:
search(){
let search = window.location.href.split('=');
this.searchValue = search[1].replace('%20', ' ');
search = search[1].replace('%20', '+').toLowerCase()
if(localStorage.getItem('userFormData')){
let form = JSON.parse(localStorage.getItem('userFormData'));
if(form.email){
this.emailClient = form.email;
}
}
axios.post('search', {search : search, emailClient : this.emailClient})
.then(response => {
console.log(JSON.parse(JSON.stringify(response.data.products)))
this.products = JSON.parse(JSON.stringify(response.data.products))
this.projects = JSON.parse(JSON.stringify(response.data.projects))
this.ebooks = JSON.parse(JSON.stringify(response.data.ebooks))
this.countProducts = response.data.countProducts
this.countProjects = response.data.countProjects
this.countEbooks = response.data.countEbooks
}).catch(error => {
console.log(error)
})
}
这是控制器中的功能:
public function searchFunction(Request $request)
{
try {
$lang = App::getLocale();
$lang = new LangMiddleware;
$locale = $lang->getLocale();
$search = $request->search;
$search = str_replace('+', ' ', $search);
if(Translations::where('group','LIKE','product%')->where('key','LIKE','%descSeo')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->exists()){
$prodsArrayTrans = Translations::where('group','LIKE','product%')->where('key','LIKE','%descSeo')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->groupBy('group')->get();
foreach($prodsArrayTrans as $key => $trans){
$product = explode('_', $trans->group);
$products = Products::with('categories')->where('id', $product[1])->where('visible', 1)->get();
$dataProducts[$key] = $products->map(function ($products) use ($locale) {
if($products->id_category != 5)
{
$category = 'heritage';
}
else
{
$category = 'graphic-lamps';
}
return [
'id' => $products->id,
'name' => $products->name,
'nameSeo' => trans($products->title_seo),
'video' => $products->video_url,
'category' => $products->categories->category,
'description' => $products->description,
'weight' => $products->weight,
'model' => $products->model,
'dimensions' => $products->dimensions,
'priceWW' => $products->price_ww,
'priceUSA' => $products->price_usa,
'titleSeo' => $products->title_seo,
'descSeo' => trans($products->desc_seo),
'keywordsSeo' => trans($products->keywords_seo),
'bulbs' => $products->bulbs,
'certificate' => (bool)$products->ul_certificate,
'new' => (bool)$products->new,
'contract' => (bool)$products->contract,
'onlineFlag' => (bool)$products->online_flag,
'onlineLink' => $products->online_link,
'image' => $products->thumbnail,
'imageAlt' => $products->thumbnail_alt,
'link' => strtolower($category . '/' . $products->categories->category . '/' . str_replace(' ', '-', $products->name))
];
});
}
}else{
$array = explode(' ', $search);
$translationsArray = [];
foreach ($array as $key => $value) {
if($value != ''){
if(Translations::where('value', 'like', '%'.$value.'%')->exists())
$translationsArray = Translations::where('value', 'like', '%'.$value.'%')->groupBy('group')->get();
}
}
if(count($translationsArray) > 0)
{
foreach ($translationsArray as $key => $trans) {
if(strpos($trans->group, 'product') !== false)
{
$product = explode('_', $trans->group);
$products = Products::with('categories')->where('id', $product[1])->where('visible', 1)->get();
$dataProducts[$key] = $products->map(function ($products) use ($locale) {
if($products->id_category != 5)
{
$category = 'heritage';
}
else
{
$category = 'graphic-lamps';
}
return [
'id' => $products->id,
'name' => $products->name,
'nameSeo' => trans($products->title_seo),
'video' => $products->video_url,
'category' => $products->categories->category,
'description' => $products->description,
'weight' => $products->weight,
'model' => $products->model,
'dimensions' => $products->dimensions,
'priceWW' => $products->price_ww,
'priceUSA' => $products->price_usa,
'titleSeo' => $products->title_seo,
'descSeo' => trans($products->desc_seo),
'keywordsSeo' => trans($products->keywords_seo),
'bulbs' => $products->bulbs,
'certificate' => (bool)$products->ul_certificate,
'new' => (bool)$products->new,
'contract' => (bool)$products->contract,
'onlineFlag' => (bool)$products->online_flag,
'onlineLink' => $products->online_link,
'image' => $products->thumbnail,
'imageAlt' => $products->thumbnail_alt,
'link' => strtolower($category . '/' . $products->categories->category . '/' . str_replace(' ', '-', $products->name))
];
});
}else{
$dataProducts = [];
}
}
}else{
$dataProducts = [];
}
}
if(Translations::where('group','LIKE','project%')->where('key','LIKE','%details')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->exists()){
$projectsArrayTrans = Translations::where('group','LIKE','project%')->where('key','LIKE','%details')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->groupBy('group')->get();
foreach($projectsArrayTrans as $key => $trans){
$project = explode('_', $trans->group);
$projects = Projects::where('id', $project[1])->get();
$dataProjects[$key] = $projects->map(function ($projects) {
return [
'id' => $projects->id,
'name' => $projects->name,
'image' => $projects->cover,
'imageAlt' => trans($projects->cover_alt),
'preview' => trans($projects->details_preview),
'title' => trans($projects->name),
'subTitle' => trans($projects->subTitle)
];
});
}
}else{
$array = explode(' ', $search);
$translationsArray = [];
foreach ($array as $key => $value) {
if($value != ''){
if(Translations::where('value', 'like', '%'.$value.'%')->exists())
$translationsArray = Translations::where('value', 'like', '%'.$value.'%')->groupBy('group')->get();
}
}
if(count($translationsArray) > 0)
{
foreach ($translationsArray as $key => $trans) {
if(strpos($trans->group, 'project') !== false)
{
$project = explode('_', $trans->group);
$projects = Projects::where('id', $project[1])->get();
$dataProjects[$key] = $projects->map(function ($projects) {
return [
'id' => $projects->id,
'name' => $projects->name,
'image' => $projects->cover,
'imageAlt' => trans($projects->cover_alt),
'preview' => trans($projects->details_preview),
'title' => trans($projects->name),
'subTitle' => trans($projects->subTitle)
];
});
}else{
$dataProjects = [];
}
}
}else{
$dataProjects = [];
}
}
if(Translations::where('group','LIKE','ebook%')->where('key','LIKE','%details')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->exists()){
$ebooksArrayTrans = Translations::where('group','LIKE','ebook%')->where('key','LIKE','%details')->where('value', 'like', '%'.$search.'%')->where('locale', $locale)->groupBy('group')->get();
foreach($ebooksArrayTrans as $key => $trans){
$ebook = explode('_', $trans->group);
$ebooks = Ebooks::where('id', $ebook[1])->get();
$dataEbooks[$key] = $ebooks->map(function($ebooks)use ($locale){
return [
'id' => $ebooks->id,
'name' => trans($ebooks->name),
'details' => trans($ebooks->details),
'image' => trans($ebooks->img),
'imageAlt' => trans($ebooks->alt)
];
});
}
}else{
$array = explode(' ', $search);
$translationsArray = [];
foreach ($array as $key => $value) {
if($value != ''){
if(Translations::where('value', 'like', '%'.$value.'%')->exists())
$translationsArray = Translations::where('value', 'like', '%'.$value.'%')->groupBy('group')->get();
}
}
if(count($translationsArray) > 0)
{
foreach ($translationsArray as $key => $trans) {
if(strpos($trans->group, 'ebook') !== false)
{
$ebook = explode('_', $trans->group);
$ebooks = Ebooks::where('id', $ebook[1])->get();
$dataEbooks[$key] = $ebooks->map(function($ebooks)use ($locale){
return [
'id' => $ebooks->id,
'name' => trans($ebooks->name),
'details' => trans($ebooks->details),
'image' => trans($ebooks->img),
'imageAlt' => trans($ebooks->alt)
];
});
}else{
$dataEbooks = [];
}
}
}else{
$dataEbooks = [];
}
}
$countProducts = count($dataProducts);
$countProjects = count($dataProjects);
$countEbooks = count($dataEbooks);
if($countProducts > 0){
$flagProducts = 1;
}else{
$flagProducts = 0;
}
if($countProjects > 0){
$flagProjects = 1;
}else{
$flagProjects = 0;
}
if($countEbooks > 0){
$flagEbooks = 1;
}else{
$flagEbooks = 0;
}
$keywords = new SearchKeyword;
$keywords->email = $request->emailClient;
$keywords->locale = $locale;
$keywords->keyword = $search;
$keywords->products_results = $flagProducts;
$keywords->projects_results = $flagProjects;
$keywords->ebooks_results = $flagEbooks;
$keywords->save();
return response()->json([
'products' => $dataProducts,
'projects' => $dataProjects,
'ebooks' => $dataEbooks,
'countProducts' => $countProducts,
'countProjects' => $countProjects,
'countEbooks' => $countEbooks,
]);
} catch (Exception $e) {
return response()->json($e->getMessage(), 500);
}
}
我真的很感激任何建议。先感谢您。
解决方案
推荐阅读
- google-cloud-firestore - 设置“允许所有身份验证”后无法访问 Firestore
- django - Django不加载静态文件但成功收集静态
- c - 如何在 C 中返回两种类型之一?
- java - @Transactional 不适用于 AspectJ
- matlab - How to deal with such error when using MATLAB interior point method to handle convex optimization?
- c++ - 多维数组的使用
- javascript - 找不到任何方法让 POST 请求工作 Reddit API - 403 错误
- php - PHP 和 GMail IMAP 连接失败
- javascript - 另一个文件中的异步函数没有被命中
- python - 如何将“2.6840000e+01”类型的数据转换为 Python 中的浮点数?