Paradox
4 سال پیش توسط Paradox مطرح شد
11 پاسخ

جستجو در سایت

سلام من میخام وقتی کاربر محصولی بر اساس عنوان یا یه متن جستجو کرد نمایش بده
کد زیر نوشتم چیزی نمایش نمیده وقتی سرچ میکنم
اشکال کار کجاست؟
انتهای کوئری سرچ باید از get استفاده بشه؟
اینجوری هم جواب نگرفتم

    public function index()
    {

        $products = Product::query();

        if($keyword = request('search')) {
            $products->where('title' , 'LIKE' , "%{$keyword}%")->orWhere('description' , 'LIKE' , "%{$keyword}%" );
        }

        $blogs = Blog::query();

        if($keyword = request('search')) {
            $blogs->where('title' , 'LIKE' , "%{$keyword}%")->orWhere('description' , 'LIKE' , "%{$keyword}%" );
        }

        $products = Product::whereStatus(1)->latest()->paginate(12);
        $blog = Blog::whereStatus(1)->latest()->take(3)->get();
        $sliders = Slider::latest()->get();
        return view('index' , compact(['products' , 'blog' , 'sliders']));
        }

کد ویو

                        <form action="{{url('/')}}" method="GET">
                            <div class="input-group">
                                <input type="text" id="searchShop" name="query" class="form-control" placeholder="جستجو محصول ..." value="{{ request('search') }}" required>
                                <button class="btn btn-primary" type="submit" name="search"><i class="fa fa-search" style="padding-top: 5px;"></i></button>

                            </div>
                        </form>

ثبت پرسش جدید
نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
1

کد ویرو را تغییر دادم

من دارم میزنم کار میکنه

 <form action="{{url('/')}}">
                                <div class="input-group">
                                    <input type="text" id="searchShop" name="search" class="form-control" value="{{ request('search') }}">
                                    <button class="btn btn-primary"><i class="fa fa-search" style="padding-top: 5px;"></i></button>
                                </div>
                            </form>

رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

سلام وقتتون بخیر!
من متوجه این قسمت ها نمیشم اصلا

        $blogs = Blog::query();

برای جستجو فقط بر اساس اسم یک محصول میتونی اینکارو کنی

$product=Product::where("name","like","%{$request->input("q")}%")->get();

کد بالا رو همین الان و بدون ide و نرم افزار خاصی زدم اگر مشکل داشت با دانش خودتون حلش کنید.

q اسم ورودی هست که از کاربر گرفته شده و اگر خالی باشه همه محصولات رو لود میکنه!
اگر میخواید بگید بر اساس نام یا قیمت باشه کد میشه

$product=Product::where("name","like","%{$request->input("q")}%")
->orWhere("price","like","%{$request->input("q")}%")
->get();

Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
1

@Rp76

سلام
میخواستم هم برای محصولات هم وبلاگ جستجو انجام بشه
برای همین این کوئری نوشتم

        $blogs = Blog::query();

من الان به این شکل نوشتم ولی خب اشتباهه داخل input فقط name نباید نوشت ؟

        $products = Product::where("title","LIKE","%{$request->input("title")}%")
        ->orWhere("price","LIKE","%{$request->input("price")}%")
        ->get();

رضا پارسیان
تخصص : توسعه دهنده Php , Laravel
@Rp76 4 سال پیش مطرح شد
0

اگر خطا داره
خطا چی هست؟ کد خطا


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

@Rp76
خطایی نداره
خروجی همه محصولات نمایش میده
url زیر رو برمیگردونه

http://localhost:8000/?query=asuse&search=

محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 4 سال پیش مطرح شد
0

من فکر میکنم یه مشکل اساسی اینه که شما دوباره داری متغییری که بالا با سرچ مقدار دهیش کردی رو مقدار دهی مجدد میکنی و واسه همین سرچت بی فایده میشه


        $products = Product::whereStatus(1)->latest()->paginate(12);
        $blog = Blog::whereStatus(1)->latest()->take(3)->get();
        $sliders = Slider::latest()->get();

این بخش مد نظرمه
به صورت زیر تغییرش بده


        $products = $products->whereStatus(1)->latest()->paginate(12);
        $blogs = $blogs->whereStatus(1)->latest()->take(3)->get();
        $sliders = Slider::latest()->get();

@Rp76 در رابطه با قطعه کدی که فرمودید چی هست اشتباه نکنم ایشون هم سرچش و هم نمایش همه ی اطلاعاتش با همین متد برمیگرده
اون خط کد رو که جدا مینویسی میتونی به صورت دلخواه اگر جستو جویی داشت ب کوئری اضاف کنی اگر نداشت همه رو برگردونی


نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
1

@TF92 سلام
کدتون را اصلاح کردم
کپی کنین استفاده کنین

public function index()
    {

        $products = Product::query();

        if($keyword = request('search')) {
            $products->where('title' , 'LIKE' , "%{$keyword}%")->orWhere('description' , 'LIKE' , "%{$keyword}%" );
        }

        $blogs = Blog::query();

        if($keyword = request('search')) {
            $blogs->where('title' , 'LIKE' , "%{$keyword}%")->orWhere('description' , 'LIKE' , "%{$keyword}%" );
        }
        $products = $products->whereStatus(1)->latest()->paginate(12);
        $blog = $blogs->whereStatus(1)->latest()->take(3)->get();
        $sliders = Slider::latest()->get();
        return view('index' , compact(['products' , 'blog' , 'sliders']));
    }

Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
1

@salar.mohammad2013
@yk5742g

ممنونم ازتون متاسفانه این کد هم کار نمیکنه
مشکل از جای دیگه ای نیست؟
فرم جستجو درست هست؟

                        <form action="{{url('/')}}" method="GET">
                            <div class="input-group">
                                <input type="text" id="searchShop" name="query" class="form-control" placeholder="جستجو محصول ..." value="{{ request('search') }}" required>
                                <button class="btn btn-primary" type="submit" name="search"><i class="fa fa-search" style="padding-top: 5px;"></i></button>

                            </div>
                        </form>

نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
1

@TF92 بله توی کد فرم جستجوتون name را از query به search تغییر بدین درست میشه و کدی که من فرستادم هم بزارید حتما


Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

@yk5742g
تغییر دادم بازم کار نکرد


نوب
تخصص : کدنویس نوب :)
@yk5742g 4 سال پیش مطرح شد
1

کد ویرو را تغییر دادم

من دارم میزنم کار میکنه

 <form action="{{url('/')}}">
                                <div class="input-group">
                                    <input type="text" id="searchShop" name="search" class="form-control" value="{{ request('search') }}">
                                    <button class="btn btn-primary"><i class="fa fa-search" style="padding-top: 5px;"></i></button>
                                </div>
                            </form>

Paradox
تخصص : در حال یادگیری
@paradox 4 سال پیش مطرح شد
0

@yk5742g
الان کار کرد ممنونم


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

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