我正在制作有食物和不同类别的网站,如早餐,午餐,晚餐等。我想做的是当用户进入网站时,它会根据当前时间自动显示该类别。 我的类别表包含字段:
我的控制器是:
public function index()
{
$now = Carbon::now();
$Category=DB::table('Categories')
->where('Start_time', '>', $now)
->where('End_time', '<', $now)
->get();
return view('welcome', compact('Category'));
}
public function categ($Category_id)
{
$category = Categories::with('food')->findOrFail($Category_id);
return view('category', compact('category'));
}
路线是:
Route::get('/','DetailsController@index');
Route::get('category/{Category_id}', 'DetailsController@categ');
在我的视图
中 @foreach ($Category as $categories)
<div class="food-box">
<button
style="font-size:14px; width: 230px; height: 30px; background-color: #00A30C; color:white; font-style: italic; text-align: center; font-size: 15px; margin: 0 auto;">
{{$categories->CategoryName}} </button>
</div>
@endforeach
我正在使用Carbon api来获取当前时间。
<?php
$mytime = Carbon\Carbon::now();
echo $mytime->format('l jS \\of F Y, h:i:s A');
?>
我希望它根据当前时间显示我的类别。如果时间间隔不符合,则会显示默认页面。如何在laravel中执行此操作?我是laravel的新手并且没有找到任何有关此问题的解决方案.Thanks
答案 0 :(得分:0)
试试这个:
$now = Carbon\Carbon::now()
$foods = DB::table('food_table')
->where('Start_time', '<', $now)
->where('End_time', '>', $now)
->get();
这会产生类似的东西:
SELECT * FROM `food_table` WHERE `Start_time` < '2016-08-29 08:38:00' and `End_time` < '2016-08-29 08:38:00'
可替换地:
$now = Carbon\Carbon::now()->format('Y-m-d H:i:s')
$foods = DB::table('food_table')
->whereRaw($now . ' BETWEEN Start_time AND End_time')
->get();
<强>更新强>
哦,等等,这应该是'Category'
,而不是'welcome'
!
return view('welcome', $Category); // no compact(), change welcome to Category
并且您不需要compact()
功能,只需将集合自行传递到视图中,就像我上面所做的那样。如果您仍然遇到问题,请尝试php artisan tinker
,然后通过命令行测试您的查询。