paradox
3 سال پیش توسط paradox مطرح شد
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>

ثبت پرسش جدید
سبحان مولایی
تخصص : برنامه‌نویس وب: Python ::...
@websaz 3 سال پیش مطرح شد
0

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


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

@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
@wxyz4367 3 سال پیش مطرح شد
0

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


paradox
@wxyz4367 3 سال پیش مطرح شد
0

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


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش آپدیت شد
0

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

<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
@wxyz4367 3 سال پیش آپدیت شد
0

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

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

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

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

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


paradox
@wxyz4367 3 سال پیش مطرح شد
0

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

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


        return view('client.home' , [

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

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

            'products' => $products,

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

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

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


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

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