سلام
من تو سایت محصولات رو میخواستم بر اساس دسته بندی نمایش بده
برای همین تو 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>
سلام منظورتون رو درست نفهمیدم یعنی وقتی کاربر هیچ چیزی جستجو نمی کنه درست کار نمی کنه یا نه وقتی جستجو می کنه نتیجه پیدا نمی شه
و بنظرم قسمت مربوط به جستجو باید در controller انجام بشه نه در provider
@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()}}
سلام.
ویو رو به صورت زیر بنویسید.
<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>
موفق باشید.
@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>
دوست عزیز من به شما میگم ویو رو به صورتی که قرار دادم بنویسید، بعد شما میای فقط{{ url('/')}} رو از action حذف می کنید و کد منو جایگذاری نمی کنید؟؟ من گفتم کد منو قرار بدین.
در کنترلر هم کد زیر رو جایگذاری کنید.
$products = $products->where('name' , 'LIKE' , "%{$keyword}%")->orWhere('cost' , 'LIKE' , "%{$keyword}%");
ببخشید اگه یکم تند صحبت کردم چون شما چیزی که من قرار دادم رو قرار ندادین و دوباره کار خودتون کردین و میگین جواب نمیده.
موفق باشید.
@rezajahangir
ممنون از پاسخگوییتون
من طبق کدهای قبلی تو یه پروژه به جواب رسیدم
تو این پروژه کدهای شما رو هم کپی کردم باز به جواب نرسیدم
فقط در صورتی خروجی نمایش میده که dd بگیرم
در غیر این صورت کل محصولات نمایش داده میشه
حس میکنم این بخش مشکل داره
return view('client.home' , [
'featuredCategory' => FeaturedCategory::getCategory() ,
'sliders' => Slider::all(),
'products' => $products,
'products' => Product::latest()->get(),
]) ;
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟