راکت
حل شده

جستجو در سایت

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>
ثبت پرسش جدید

پاسخ‌ها

11
نوب
نوب
@yk5742g

تخصص: کدنویس نوب :)

بهترین پاسخ

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

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

 <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>
رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

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

        $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
@paradox

تخصص: در حال یادگیری

@Rp76

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

        $blogs = Blog::query();

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

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

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

رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

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

http://localhost:8000/?query=asuse&search=
محمد رضا
محمد رضا
@salar.mohammad2013

تخصص: Full Stack Developer

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


        $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

تخصص: کدنویس نوب :)

@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
@paradox

تخصص: در حال یادگیری

@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

تخصص: کدنویس نوب :)

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

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

Paradox
Paradox
@paradox

تخصص: در حال یادگیری

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

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

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