راکت
5 پاسخ

سرچ در لاراول

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

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

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

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

                    $products=Product::orderby('id' , 'desc')->where('name', 'like', "%".$name."%")->paginate(100);

ثبت پرسش جدید
علیرضا کفایتی
علیرضا کفایتی
تخصص :برنامه نویس laravel, vue.js
@alirezakefayati4 سال پیشمطرح شد
0

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


امیر علی
امیر علی
تخصص :طراح و توسعه دهنده fullstack
@ajdar96674 سال پیشمطرح شد
0

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


محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
1

سلام
کلیدواژه ای که دنبالش هستید 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


رضا جهانگیر
رضا جهانگیر
تخصص :Full-Stack Developer
@rezajahangir4 سال پیشمطرح شد
0

سلام به شما دوست عزیز.
تگ 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);

موفق باشید.


محمد امیری
محمد امیری
تخصص :backend coder
@mohammadeng37314 سال پیشمطرح شد
0

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


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

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