بدأت في الحصول على هذا الاستثناء بعد الترقية إلى أحدث إصدار أمس من هذه الحزمة.
تتبع المكدس:
[2020-08-10 15:22:11] production.ERROR: Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) {"exception":"[object] (Error(code: 0): Wrong parameters for MeiliSearch\\Exceptions\\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) at /home/redacted/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php:20)
[stacktrace]
#0 /home/redacted/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php(20): Exception->__construct()
#1 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(182): MeiliSearch\\Exceptions\\HTTPRequestException->__construct()
#2 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(165): MeiliSearch\\Http\\Client->parseResponse()
#3 /home/redacted/vendor/meilisearch/meilisearch-php/src/Http/Client.php(101): MeiliSearch\\Http\\Client->execute()
#4 /home/redacted/vendor/meilisearch/meilisearch-php/src/Endpoints/Delegates/HandlesDocuments.php(29): MeiliSearch\\Http\\Client->post()
#5 /home/redacted/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(59): MeiliSearch\\Endpoints\\Indexes->addDocuments()
#6 /home/redacted/vendor/laravel/scout/src/Jobs/MakeSearchable.php(42): Meilisearch\\Scout\\Engines\\MeilisearchEngine->update()
#7 [internal function]: Laravel\\Scout\\Jobs\\MakeSearchable->handle()
نفس المشكلة هنا ، بعد تحديث هذه الحزمة ، كنت بحاجة إلى تحديث مثال الرمز هذا المأخوذ من الملف التمهيدي كما هو موضح أدناه =>
Book::search('prince', function (Index $meilisearch, $query, $options) {
$options['filters'] = 'author="Antoine de Saint-Exupéry"';
return $meilisearch->search($query, $options);
})->take(3)->get();
إلى
Book::search('prince', function (Indexes $meilisearch, $query, $options) {
$options['filters'] = 'author="Antoine de Saint-Exupéry"';
return $meilisearch->search($query, $options);
})->take(3)->get();
راجع المعلمة $meilisearch
، تم كتابة تلميح إلى Meilisearch\Index
قبل ، لكننا الآن نحتاج إلى كتابة تلميح إلى MeiliSearch\Endpoints\Indexes
.
ثم لدي هذه المشكلة:
[2020-08-11 15:56:50] local.ERROR: Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) {"userId":2,"exception":"[object] (Error(code: 0): Wrong parameters for MeiliSearch\\Exceptions\\HTTPRequestException([string $message [, long $code [, Throwable $previous = NULL]]]) at /var/www/html/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php:20)
[stacktrace]
#0 /var/www/html/vendor/meilisearch/meilisearch-php/src/Exceptions/HTTPRequestException.php(20): Exception->__construct(NULL, 405, NULL)
#1 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(182): MeiliSearch\\Exceptions\\HTTPRequestException->__construct(405, NULL)
#2 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(165): MeiliSearch\\Http\\Client->parseResponse(Object(GuzzleHttp\\Psr7\\Response))
#3 /var/www/html/vendor/meilisearch/meilisearch-php/src/Http/Client.php(101): MeiliSearch\\Http\\Client->execute(Object(GuzzleHttp\\Psr7\\Request))
#4 /var/www/html/vendor/meilisearch/meilisearch-php/src/Endpoints/Indexes.php(127): MeiliSearch\\Http\\Client->post('/indexes/compan...', Array)
#5 /var/www/html/app/Models/Company.php(394): MeiliSearch\\Endpoints\\Indexes->search('oj', Array)
#6 [internal function]: App\\Models\\Company::App\\Models\\{closure}(Object(MeiliSearch\\Endpoints\\Indexes), 'oj', Array)
#7 /var/www/html/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(128): call_user_func(Object(Closure), Object(MeiliSearch\\Endpoints\\Indexes), 'oj', Array)
#8 /var/www/html/vendor/meilisearch/meilisearch-laravel-scout/src/Engines/MeilisearchEngine.php(92): Meilisearch\\Scout\\Engines\\MeilisearchEngine->performSearch(Object(Laravel\\Scout\\Builder), Array)
#9 /var/www/html/vendor/laravel/scout/src/Builder.php(220): Meilisearch\\Scout\\Engines\\MeilisearchEngine->search(Object(Laravel\\Scout\\Builder))
#10 /var/www/html/app/Models/Company.php(396): Laravel\\Scout\\Builder->raw()
#11 /var/www/html/app/Http/Livewire/Admin/ShowCompanies.php(171): App\\Models\\Company::searchBy('oj', Array)
#12 /var/www/html/vendor/livewire/livewire/src/Component.php(99): App\\Http\\Livewire\\Admin\\ShowCompanies->render()
#13 /var/www/html/vendor/livewire/livewire/src/Connection/ConnectionHandler.php(29): Livewire\\Component->output(NULL)
#14 /var/www/html/vendor/livewire/livewire/src/Controllers/HttpConnectionHandler.php(13): Livewire\\Connection\\ConnectionHandler->handle(Array)
#15 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(48): Livewire\\Controllers\\HttpConnectionHandler->__invoke('admin.show-comp...')
#16 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(Livewire\\Controllers\\HttpConnectionHandler), '__invoke')
#17 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#18 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
#19 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}(Object(Illuminate\\Http\\Request))
#20 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#21 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#22 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#23 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#24 /var/www/html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#25 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#26 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(116): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#27 /var/www/html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest(Object(Illuminate\\Http\\Request), Object(Illuminate\\Session\\Store), Object(Closure))
#28 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#29 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#30 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#31 /var/www/html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#32 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#33 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#34 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(687): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#35 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(662): Illuminate\\Routing\\Router->runRouteWithinStack(Object(Illuminate\\Routing\\Route), Object(Illuminate\\Http\\Request))
#36 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(628): Illuminate\\Routing\\Router->runRoute(Object(Illuminate\\Http\\Request), Object(Illuminate\\Routing\\Route))
#37 /var/www/html/vendor/laravel/framework/src/Illuminate/Routing/Router.php(617): Illuminate\\Routing\\Router->dispatchToRoute(Object(Illuminate\\Http\\Request))
#38 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(165): Illuminate\\Routing\\Router->dispatch(Object(Illuminate\\Http\\Request))
#39 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}(Object(Illuminate\\Http\\Request))
#40 /var/www/html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(65): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#41 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#42 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#43 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#44 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#45 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#46 /var/www/html/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#47 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#48 /var/www/html/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#49 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle(Object(Illuminate\\Http\\Request), Object(Closure))
#50 /var/www/html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}(Object(Illuminate\\Http\\Request))
#51 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(140): Illuminate\\Pipeline\\Pipeline->then(Object(Closure))
#52 /var/www/html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(109): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter(Object(Illuminate\\Http\\Request))
#53 /var/www/html/public/index.php(55): Illuminate\\Foundation\\Http\\Kernel->handle(Object(Illuminate\\Http\\Request))
#54 {main}
"}
مرحبا يا شباب!
عذرًا ، كان يجب أن يكون الإصدار السابق قاصرًا جديدًا ( v0.11.0
بدلاً من v0.10.7
). لم ندرك أنه كان ينكسر! اسف بشأن ذلك!
YannickYayo ، شكرا على الإصلاح! هذا PR # 38 يأخذ في الاعتبار ما قلته! هل يكفيك أم فاتني شيء؟ 🙂
dmyers ، هل إصلاح YannickYayo يحل مشكلتك؟
dmyers و YannickYayo (و shokme). سؤال آخر: هل تعتقد أنه يجب علينا إزالة v0.10.7
من Packagist ومن GitHub وإنشاء v0.11.0
؟ أو يكفي مجرد إنشاء v0.11.0
؟
لقد نسيت أن أذكرها ، لكن إصلاحي الصغير لا يحل المشكلة بـ Wrong parameters for MeiliSearch\Exceptions\HTTPRequestException...
:(
سأحاول تصحيحه وتقديم ملاحظات.
في رأيي ، إنشاء v0.11.0
كافي ، يمكنك كتابة تحذير حول v0.10.7
.
نعم ، لقد أجريت بالفعل نفس التغيير كما فعل YannickYayo مع تلميح الكتابة للفهرس وحدث هذا الاستثناء بعد ذلك.
عذرا أغلقت عن طريق الخطأ عن طريق الخطأ.
أتفق مع Yannick على الإصدار ، لكنني لا أعرف كثيرًا عن semver أو أفضل الممارسات في هذه الأشياء لأكون صادقًا ، فأنا أستخدم معظم حزمتي فقط. 😄
راجع للشغل هذا لن يتم إصلاحه ببساطة بـ # 38 لأن هذا الاستثناء ناتج عن تغيير حديث من تبعية MeiliSearch PHP المنبع التي أضافت التوافق مع v0.13
.
https://github.com/meilisearch/meilisearch-laravel-scout/releases/tag/v0.10.7
تحديث :
كنت أستخدم الإصدار 0.12
من محرك Meilisearch ، بعد ترقيته على Docker إلى 0.13
وإعادة فهرسة مستنداتي ، فقد تم حل المشكلة بالنسبة لي!
حسنًا ، آسف يا رفاق ، لقد ذهبت للصيام ، وأنا أفهم أن العلاقات العامة الخاصة بي لا تصلح أي شيء باستثناء جزء صغير من README 😅
حتى الآن YannickYayo ، أفهم أن مشكلتك قد تم إصلاحها ، أليس كذلك؟ لقد قمت بتحديث README في رقم 38 وفقًا لما قلته: meilisearch-laravel-scout v0.10.7 غير متوافق مع MeiliSearch v0.12.0 وما قبله
dmyers ، أفهم أن مشكلتك لا تزال موجودة على الرغم من:
Index
إلى Indexes
حق؟
curquiza Yep ، باستخدام Meilisearch v0.13.0
أصلح مشكلتي: +1:
لقد كنت أستخدم الإصدار v0.13.0
منذ ما قبل أن أفتح هذه المشكلة.
ما زلت أتلقى هذا الخطأ حتى اليوم ، ولكن يبدو أنه ناتج عن PHP SDK إذا كان مثيل خادم البحث الخاص
أعتقد أن السبب الجذري لسوء استخدام ملحق فئة الاستثناء في فئة HTTPRequestException
والذي يقوم بتبديل ترتيب الوسيطة لفئة الاستثناء في PHP stdlib بشكل غير صحيح.
هنا يمكنك رؤية ترتيب args لـ Exception
:
https://www.php.net/manual/en/exception.construct.php
انظر الآن إلى ترتيب args لـ HTTPRequestException
:
https://github.com/meilisearch/meilisearch-php/blob/master/src/Exceptions/HTTPRequestException.php#L15
الآن بالعودة إلى Laravel ، يتجمد خادم MeiliSearch بطريقة ما أو شيء من هذا القبيل وهذا الخطأ يغمر جدول failed_jobs
وبمجرد إعادة تشغيله يتم حله ، لكن هذه المشكلة بدأت بعد ترقية هذه الحزمة. لدي حوالي 80000 سجل في هذا الجدول من هذا منذ أن قمت بالترقية.
عذرًا dmyers ، لم يكن يجب إغلاق هذه المشكلة ، يا سيئة ، لقد تم إجراؤها تلقائيًا بواسطة GitHub لأنني ربطت المشكلة!
هل يمكنك تقديم الجزء الذي فشل في الكود؟ لأنه من المعقد حاليًا بالنسبة لنا تخمين ما حدث بدون تفاصيل. لم أنجح في الحصول على Error
.
في أي حال ، يجب ألا يتم تجميد MeiliSearch بغض النظر عما تفعله. قد يكون السياق مفيدًا حقًا للإبلاغ عنه وإصلاح Error
🙂
dmyers تم دفع تحديث ، وهذا يجب أن يحل "المعلمات الخاطئة".
يجب تحديث الحزمة إلى الإصدار ^0.12
، والذي سيتطلب منك أيضًا إضافة عميل http ومصنع يمكنك رؤية التفاصيل في تعليمات التثبيت من الملف التمهيدي.
شكرًا جزيلاً على التحديث @ shokme. كنت ما زلت أرى هذه الاستثناءات في جدول الوظائف الفاشلة في تطبيق Laravel الخاص بي ، لكنني كنت أجد صعوبة في الحصول على حالة اختبار قابلة للتكرار لمشاركتها ، لذا فأنا سعيد لأنك تمكنت من حلها.
سأختبر الإصدار الجديد قريبًا.
مرحبًا dmyers ، هل ما زالت هذه مشكلة ، هل يمكنني إغلاقها؟ :)