راکت

جستجو محصولات

9 پاسخ

سلام
من تو سایت محصولات رو میخواستم بر اساس دسته بندی نمایش بده
برای همین تو appserviceprovider اومدم فراخوانی کردم و به درستی نمایش میده
حالا میخوام جستجو محصولات هم انجام بدم باید تو همون appserviceprovider انجام بدم یا کنترلر؟
من تو کنترلری که مربوط به صفحه اصلی میشه کوئری انجام دادم زمانی که dd میگیرم درسته ولی در حالت عادی محصول مورد نظر پیدا نمیکنه

پروایدرز

   public function boot()
    {
        Schema::defaultStringLength(191);

        view()->composer('client.*' , function($view){

            $view->with([

                'categories'=> Category::query()->where('category_id' , null)->get() ,

                'brands' => Brand::all(),

            ]);
        });

کنترلر


    public function index(){

        $products = Product::query();

        if($keyword = request('search'))
        {
          $products = $products->where('name' , 'LIKE' , "%$keyword%")->orWhere('cost' , 'LIKE' , "%$keyword%")->get();

            dd($products);
        }

        return view('client.home' , [

            'featuredCategory' => FeaturedCategory::getCategory() ,

            'sliders' => Slider::all(),

            'products' => $products,

            // 'products' => Product::latest()->get(),
        ]) ;

    }

ویو جستجو

     <div id="search" class="input-group">
              <form action="{{ url('/')}}">
              <input id="filter_name" type="text" name="search" value="{{ request('search') }}" placeholder="جستجو" class="form-control input-lg" />
              <button type="button" class="button-search"><i class="fa fa-search"></i></button>
            </form>
            </div>
paradox
paradox
@wxyz4367
ثبت پرسش جدید

پاسخ‌ها

9
سبحان مولایی
سبحان مولایی
@websaz

تخصص: برنامه‌نویس وب: Python :: Django :: Node :: Php :: Laravel :: JS :: React :: React Native

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

نوب
نوب
@yk5742g

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

@wxyz4367
اول اینکه شما وقتی که بعد از شرط جستجو هیچ نوع کوئری get ننوشتین چطور انتظار دارین بدون جستجو محصولات را بیاره ؟
دوم اینکه اصلا این موضوع ربطی به appServiceProvider نداره و همشو توی کنترلر مربوطه باید انجام بدی
سوم اینکه چرا از compact برای ارسال مقادیر به view استفاده نکردی ؟

کدتو اصلاح کردم

$products = Product::query();

        if($keyword = request('search'))
        {
            $products = $products->where('name' , 'LIKE' , "%$keyword%")
                ->orWhere('cost' , 'LIKE' , "%$keyword%");
        }
        $products = $products->latest()->paginate();

توی view مورد نظر هم قاعدتا کد paginate هم باید بزاری

{{$products->links()}}

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

paradox
paradox
@wxyz4367

@
وقتی جستجو میکنم نتیجه پیدا نمیشه
تو کنترلرانجام دادم ولی فایده نداش

paradox
paradox
@wxyz4367

@yk5742g
ممنونم دوست عزیز
ولی باز هم نتیجه نگرفتم جستجویی انجام نمیشه

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

تخصص: Full-Stack Developer

سلام.
ویو رو به صورت زیر بنویسید.

<div id="search" class="input-group">
    <form action="">
        <input id="filter_name" type="text" name="search" value="{{ request('search') }}" placeholder="جستجو" class="form-control input-lg" />
        <button type="submit" class="button-search"><i class="fa fa-search"></i></button>
    </form>
</div>

موفق باشید.

paradox
paradox
@wxyz4367

@rezajahangir
سلام ممنونم ولی باز تمام محصولات نمایش میده
سرچ

کدهای کنترلر

   public function index(){

        $products = Product::query();

        if($keyword = request('search'))
        {
          $products = $products->where('name' , 'LIKE' , "%$keyword%")->orWhere('cost' , 'LIKE' , "%$keyword%")->get();

            // dd($products);
        }

        return view('client.home' , [

            'featuredCategory' => FeaturedCategory::getCategory() ,

            'sliders' => Slider::all(),

            'products' => $products,

            'products' => Product::latest()->get(),
        ]) ;

    }

ویو

            <div id="search" class="input-group">
              <form action="">
              <input id="filter_name" type="text" name="search" value="{{ request('search') }}" placeholder="جستجو" class="form-control input-lg" />
              <button type="button" class="button-search"><i class="fa fa-search"></i></button>
            </form>
            </div>
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

دوست عزیز من به شما میگم ویو رو به صورتی که قرار دادم بنویسید، بعد شما میای فقط{{ url('/')}} رو از action حذف می کنید و کد منو جایگذاری نمی کنید؟؟ من گفتم کد منو قرار بدین.
در کنترلر هم کد زیر رو جایگذاری کنید.

$products = $products->where('name' , 'LIKE' , "%{$keyword}%")->orWhere('cost' , 'LIKE' , "%{$keyword}%");

ببخشید اگه یکم تند صحبت کردم چون شما چیزی که من قرار دادم رو قرار ندادین و دوباره کار خودتون کردین و میگین جواب نمیده.
موفق باشید.

paradox
paradox
@wxyz4367

@rezajahangir
ممنون از پاسخگوییتون
من طبق کدهای قبلی تو یه پروژه به جواب رسیدم
تو این پروژه کدهای شما رو هم کپی کردم باز به جواب نرسیدم
فقط در صورتی خروجی نمایش میده که dd بگیرم
در غیر این صورت کل محصولات نمایش داده میشه

حس میکنم این بخش مشکل داره


        return view('client.home' , [

            'featuredCategory' => FeaturedCategory::getCategory() ,

            'sliders' => Slider::all(),

            'products' => $products,

            'products' => Product::latest()->get(),
        ]) ;
رضا جهانگیر
رضا جهانگیر
@rezajahangir

تخصص: Full-Stack Developer

تک تکشونو با dd تست بگیرید ببینید خروجی چی نمایش میده.

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

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