راکت

سرچ در لاراول

5 پاسخ

با سلام خدمت دوستان

من برای سرچ در لاراول از پکیجی استفاده نکردم چون فقط یک فیلتر دارم

مشکلم اینجاست که دقیق سرچ نمیکنه مثلا برای سرچ " کتاب پرواز دوران " اگر " کتاب دوران "بزنم چیزی نمیاره

کدم رو هم اینجوری نوشتم

                    $products=Product::orderby('id' , 'desc')->where('name', 'like', "%".$name."%")->paginate(100);
ثبت پرسش جدید

پاسخ‌ها

5
علیرضا کفایتی
علیرضا کفایتی
@alirezakefayati

تخصص: برنامه نویس laravel, vue.js

خوب طبیعیه !!!
% این ها اصلا کاربردشون چیه ؟ این مقاله را بخوانید . mysql داره دنبال کلمه "کتاب دوران" میگرده و به شما خروجی میده . اینها کاملا به هم پیوسته هستند . پس نمیتونه "کتاب پرواز دوران" رو برگردونه

امیر علی
امیر علی
@ajdar9667

تخصص: طراح و توسعه دهنده fullstack

سلام برای این کار شما میتونین از full text search در زبان php استفاده کنین من در پی اچ پی خام این کار رو کردم شما برای لاراول باید یکم جست و جو کنین تا روشش رو پیدا کنین
یک مثال

شاید پاسخ شما همین‌جا باشد

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

سلام
کلیدواژه ای که دنبالش هستید fuzzy search هست. یک مقدار سرچ کنید تا با کلیت و مفهومش آشنا بشید.
و بعد نگاهی به پکیج های ارائه شده برای پیاده سازی این مبحث توسعه داده شده اند بندازید. احتمالا به شکل کامل نیازتون رو برآورده خواهند کرد.

چند مثال:
https://github.com/mattkingshott/quest
توضیح تصویر رو وارد کنید

https://github.com/highsolutions/laravel-searchy

$users = Searchy::search('users')->fields('name', 'email')->query('John Smith')
    ->getQuery()->having('relevance', '>', 20)->get();

لیست پکیج های مرتبط:
https://packagist.org/?query=fuzzy%20search&tags=laravel

رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

سلام به شما دوست عزیز.
تگ input باید به صورت زیر باشد:

<form action="">
    <input type="text" name="search" value="{{ request('search') }}">
</form>

کنترلر مربوطه هم به صورت زیر بنویسید:

$products = Product::query();
if ($keyword = request('search')) {
    $products->where('name', 'LIKE', "%{$keyword}%");
}
$products = $products->latest()->paginate(100);

موفق باشید.

محمد امیری
محمد امیری
@mohammadeng3731

تخصص: backend coder

سلام
علامت درصد باید به ازای هر کلمه گذاشته بشه.یعنی به ازای هر کلمه باید اطرافش علامت درصد باشه.همون فاز به فاز خودمون.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام