Php 在laravel中根据时间获取类别

Php 在laravel中根据时间获取类别,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,我做的网站,有食物和不同的类别,如早餐,午餐,晚餐等。我想做的是当用户进入网站时,它会自动显示根据当前时间的类别。 Mycategory表格包含以下字段: 身份证 名字 开始时间 结束时间 我的控制器是: public function index() { $now = Carbon::now(); $Category=DB::table('Categories') ->where('Start_time', '>', $now)

我做的网站,有食物和不同的类别,如早餐,午餐,晚餐等。我想做的是当用户进入网站时,它会自动显示根据当前时间的类别。 Mycategory表格包含以下字段:

  • 身份证
  • 名字
  • 开始时间
  • 结束时间
我的控制器是:

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'));
}
在我的视图中

 @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
@foreach($Category作为$categories)
{{$categories->CategoryName}
@endforeach
我使用CarbonAPI来获取当前时间

<?php 
 $mytime = Carbon\Carbon::now();
 echo $mytime->format('l jS \\of F Y, h:i:s A');
?>

我希望它显示基于当前时间的类别。如果时间间隔不符合要求,则将显示默认页面。我如何在laravel中执行此操作?我是laravel的新手,没有找到任何解决方案。谢谢尝试以下操作:

$now = Carbon\Carbon::now()
$foods = DB::table('food_table')
            ->where('Start_time', '<', $now)
            ->where('End_time', '>', $now)
            ->get();
更新

哦,等等,这应该是
'Category'
,而不是
'welcome'

return view('welcome', $Category); // no compact(), change welcome to Category

您不需要
compact()
函数,只需将集合本身传递到视图中,就像我上面所做的那样。如果您仍然有问题,请尝试
php artisan tinker
,并通过命令行测试您的查询。

开始时间和结束时间是如何存储在数据库中的?Unix时间戳?Mysql时间戳还是日期时间?当然,您没有以那种格式存储它们。它们存储为Mysql时间戳。如果我的答案有帮助,请将其标记为接受。这不会产生任何结果。您是否用自己的表名替换了
food\u table
?现在是否有任何数据应该显示出来?是的,我更新了表名,表中有数据。请用您用来进行此查询的代码更新您的问题。取出
compact()
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();
return view('welcome', $Category); // no compact(), change welcome to Category