علی کوندری
3 سال پیش توسط علی کوندری مطرح شد
5 پاسخ

سرچ در لاراول

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

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

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

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

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

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

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


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

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
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
@rezajahangir 3 سال پیش مطرح شد
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
@mohammadeng3731 3 سال پیش مطرح شد
0

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


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

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