Php 我的laravel查询只返回数据库中的最后一条记录

Php 我的laravel查询只返回数据库中的最后一条记录,php,mysql,angularjs,laravel,Php,Mysql,Angularjs,Laravel,我在做一个网站的搜索条件,我面临的问题是,如果在数据库中我有多个同名的驱动程序,我的查询只返回它找到的最后一条记录, 首先,iam从用户处获取输入,并在名为drivers的表中搜索包含与他输入的输入相同的记录,代码: if(!empty($name)||!empty($policynum)||!empty($platenum)||!empty($platecode)) // ** if one of name or policy# or platenum or platecode is set

我在做一个网站的搜索条件,我面临的问题是,如果在数据库中我有多个同名的驱动程序,我的查询只返回它找到的最后一条记录, 首先,iam从用户处获取输入,并在名为drivers的表中搜索包含与他输入的输入相同的记录,代码:

if(!empty($name)||!empty($policynum)||!empty($platenum)||!empty($platecode)) // ** if one of name or policy# or platenum or platecode  is set ** //
{
$query = DB::table('drivers');
if(!empty($name))
$query -> where('driverName',$name);
if(!empty($policynum))
$query -> where('policyNumber',$policynum);
if(!empty($platenum))
$query -> where('plateNumber',$platenum);
if(!empty($platecode))
$query -> where('plateCode',$platecode);

$result = $query->get();
 $result=json_encode($result,true);
 $result=json_decode($result,true);
 }                                // --- end of if 4 inputs set --- //
在得到驾驶员之后,我在驾驶员数据库中有一个名为事故id的属性,因此现在我必须转到事故数据库表,搜索id与事故id相同的事故,代码:

if(count($result)>0 && empty($expname))   // if result array returns >0 results and exp-name empty //

{
for($x=0;$x<count($result);$x++)
$accident= accident::where('id',$result[$x]['accidentId'])
->get(); 
return $accident; 
}
但是这个表只显示了我数据库中具有相同id的最后一行,而不是所有的行,有人能帮忙吗

php函数输出($):

[id:1,“事故记录”:“rexord测试”,“地址”:“haret hreik”,“地点”:“无地点”,“地区”:“同事”:“警察”:“道路方向”:“道路类型”:“道路编号”:“道路宽度”:“日期”:“2017-04-12”,“时间”:“16:28:29”,“视野”:“天气状况”:“专家”:“事故编号”:“2017-04-1216:28:291”,“完成日期”:“自由描述”:“创建于”:“2017-04-12 16:28:29”,“更新于”:“2017-04-12 16:28:29”,“删除于”:null}],{“id”:1,“意外楼层”:“意外记录”:“雷克斯福德测试”,“地址”:“haret hreik”,“位置”:“无位置”,“地区”:“同事”:“警察”:“道路方向”:“道路类型”:“道路编号”:”“,”道路宽度“,”日期“:”2017-04-12“,”时间“:”16:28:29“,”视野“,”天气状况“,”专家“,”事故发生编号“,”2017-04-1216:28:291“,”完成日期“,”自由描述“,”创建时间“:”2017-04-12 16:28:29“,”更新时间“:”2017-04-12 16:28:29“,”删除时间“,”空“,”,”,“,”,”,“,”,“,”,“,”id“,”1,“事故记录“,”雷克索德测试“,”地址“,”“:”haret hreik“,”地点“,”无地点“,”地区“,”同事“,”警察“,”道路方向“,”道路类型“,”道路编号“,”道路宽度“,”日期“,”时间“,”时间“,”16:28:29“,”视野“,”天气状况“,”专家“,”事故发生编号“:”2017-04-1216:28:291“,”完成日期“,”自由描述“,”创建时间“:”“2017-04-12 16:28:29”,“更新地点”:“2017-04-12 16:28:29”,“删除地点”:“空”),“{“id”:3,“意外楼层”:“意外记录”:“bir al abed”,“地址”:“borj”,“地点”:“33.8591245,35.5110078”,“地区”:“同事”:“警察”:“道路方向”:“道路类型”:“\u0645\u0646\u0639\u0637\u0641”,“道路编号”:“2”,“道路宽度”:“日期”:“2017-05-01”时间“:”13:21:26“,”视觉“:”天气状况“,”专家“:”1“,”事故发生编号“:”2017-05-0113:21:261“,”完成日期“:”自由描述“,”创建时间“:”2017-05-01 13:21:26“,”更新时间“:”2017-05-01 13:21:26“,”删除时间“:null}]

控制台输出:

(4) [阵列(1)、阵列(1)、阵列(1)、阵列(1)]
0 : 数组(1)
1. : 数组(1)
2. : 数组(1)
3. : 数组(1)
长 : 4
proto : 数组(0)

您的for循环

for($x=0;$x<count($result);$x++)
$accident= accident::where('id',$result[$x]['accidentId'])
->get(); 

$contractions
包含所有事故数据。

没错,我尝试添加$contraction[$x],所以它可能会将它们添加到数组中,但仍然没有运行Kay,这在某种程度上是有帮助的,我现在在我的表中得到了3行,这与我的数据库中包含该名称的行数相同,但作为第二个问题,表是空的,正如我在控制台中看到的,它返回了3个数组,但为空,只需对
执行一个
打印
>$contractions
变量,看看它显示了什么。它显示了我想要的3行,所以查询成功了,但是为什么我在表中得到了空行?我发布了html部分,我正在填充表,你认为我必须编辑其中的任何内容吗?我不确定你最终是如何编写php代码的,但它为每个行创建了一个额外的数组表行。尝试将角度代码更改为
事故.0.意外记录
事故[0]意外记录
,我不太确定。
$scope.search=function(accident)
{
  $http({
      method:'GET',
      url:'getAccident',
      params: {accident:accident}
  })
      .success(function(data){
          $scope.accidents=data;
          console.log(data);
      })
      .error(function(err){
          console.log(err);
      })
};
for($x=0;$x<count($result);$x++)
$accident= accident::where('id',$result[$x]['accidentId'])
->get(); 
$accidents = [];
if(count($result)>0 && empty($expname))   // if result array returns >0 results and exp-name empty //
{
    for($x=0;$x<count($result);$x++)
        $accidents[] = accident::where('id',$result[$x]['accidentId'])->get(); 
    return $accidents; 
}