获取Laravel 5.2中的范围之间的记录

时间:2016-05-28 08:09:16

标签: laravel-5.2

我有一个表格,其中包含名字,姓氏和当然年龄,其中年龄值将自动填充,因为我在控制器中有一个功能,可以根据日期生日和当前年份计算年龄。现在我想获取数据基于查询的动态查询表,以年龄为参数

在数据库中,我有一个包含类似字段的人员表

name   lastname   age
john   simons     40
olivia newtin     100
sylvia gay        390

现在我想让那些年龄从40岁到100岁的人。当然我期待着约翰·西蒙斯和奥利维亚·纽丁将是返回的价值。但我得到了无效。你会如何解决这个问题?

控制器

public function getAllPeopleByThisAge()
{
   //query to repository
    $min = 40;
    $max =  100
    $somereturn = $this->student->getAllPeopleByThisAge($min, $max);
} 

现在我的存储库中的某个地方

   public function getAllPeopleByThisAge($min,$max)
   {
      $this->people = DB::table('students')
                    ->select('students.age')
                    ->whereBetween('age',[$min, $max])
                    ->get();
   }

我的数据库显示年龄保存为integer.e.g 15,20,100,70 .....

的列

1 个答案:

答案 0 :(得分:0)

当您致电select('students.age')时,它会返回一个用户年龄列表,然后您致电->whereBetween('age',[$min, $max])->get();,当然它会返回null,因为您的字段age没有select('students.age')的查询结果。尝试删除select('students.age')并在此之后保留所有内容,

DB::table('students')->whereBetween('age',[$min, $max])->get();