我想传递一个数组,其中包含所有学徒,并按专业化,开始年份和姓名排序。
$apprentices = Apprentice::orderBy('specialization', 'asc')->orderBy('startYear', 'asc')->orderBy('name', 'asc')->get();
这工作得很好,但是现在我只想返回4年前或更短的学徒期的数据集。 我试过这个:
$apprentices = Apprentice::orderBy('specialization', 'asc')->orderBy('startYear', 'asc')->orderBy('name', 'asc')->get()->where('startYear' <= date("Y") - 4);
但这不会返回任何内容。
这只是一个较小的语法错误,还是我的想法是错误的? 预先感谢
答案 0 :(得分:0)
您尝试过吗:
$apprentices = Apprentice::whereYear('startYear', '<=', \Carbon\Carbon::now()->subYears(4))->orderBy('specialization', 'asc')->orderBy('startYear', 'asc')->orderBy('name', 'asc')->get();
答案 1 :(得分:0)
您的where
子句的格式不正确,您需要将get
移到末尾:
$apprentices = Apprentice::orderBy('specialization', 'asc')->orderBy('startYear', 'asc')->orderBy('name', 'asc')->where('startYear', '<=', date("Y") - 4)->get();
请参阅手册where clauses。