【发布时间】:2021-12-19 07:09:56
【问题描述】:
我有一个名为 Student 的模型,该模型包含一些字段
| id | teacher_id | roll_number |
|---|---|---|
| 1 | 1 | 1 |
| 2 | 1 | 2 |
| 3 | 1 | 3 |
| 4 | 1 | 4 |
| 5 | 1 | 5 |
| 6 | 1 | 6 |
| 7 | 1 | 7 |
| 8 | 1 | 8 |
| 9 | 1 | 9 |
| 10 | 1 | 10 |
| 11 | 2 | 11 |
| 12 | 2 | 12 |
| 13 | 2 | 13 |
我有一个传递值 teacher_id、start_roll 和 end_roll 的表单
我有一个查询,我使用whereBetween 方法获取学生信息
$studentData = Student::where('teacher_id',$request->teacher_id)->whereBetween('roll_number',[$request->start_roll,$request->end_roll])->get();
其中start_roll 的值为1 和end_roll 的值为10 和teacher_id 的值为1 但奇怪的是它只返回两个数组值,其中id 为1 和10 仅
如果我再次搜索 start_roll 值是 5 和 end_roll 值是 10 和 teacher_id 值是 1 但它也很奇怪它返回一个空数组
如果我在搜索时打印上面的查询,它会像下面这样打印
Student::where('teacher_id',1)->whereBetween('roll_number',[5,10])->get();
如果我执行上述硬编码查询(从 5 到 10 手动输入 roll_number),那么它对我来说工作正常,它返回 6 个数组编号,其中 id 开始 5 和结束 10
我不知道为什么我的搜索不起作用。任何建议都非常感谢
【问题讨论】:
-
你确定 $request->start_roll/end_roll 返回数字吗?尝试同时转换 intval($request->start_roll) ...
-
@AngelDeykov,它返回两个数字,但它们是
string还是int不检查它。谢谢你的好意见 -
我在评论中打赌,但我明白你明白我的意思。所以这解决了这个问题,因为我真的没有在代码中看到任何错误......?
-
我无法在我的机器中复制它
-
@ManojKiranAppathurai,我无法理解您的问题
标签: php mysql laravel laravel-8