使用 routes/api laravel 时未定义的变量

undefined variable when use routes/api laravel

我在使用路由 api.php、 时在我的控制器中使用查询生成器从数据库获取数据时收到错误 undefinde variable: sequence_id,但在使用 web.php 路由时它的工作很好。使用 api.php.

时,查询似乎没有结果
$sequence = DB::connection('pgsql2')
                ->table('ad_sequence')
                ->where('prefix', 'PR.')
                ->get();

foreach($sequence as $doc){

        $sequence_id = $doc->ad_sequence_id;
        $prefix = $doc->prefix;
        $no     = $doc->currentnext;
    }

$data_array = array(
        "data" => array(
            "entityName" => "sequence",
            "organization" => "school",
            "description" => "test",
            "userContact" => $sequence_id,
            "document" => $prefix.$no
        )
    );

return $data_array;

$序列结果

Illuminate\Support\Collection {#298 ▼
  #items: array:1 [▼
    0 => {#300 ▼
      +"ad_sequence_id": "99231CC71F38431592CBE8E09CF0DDBF"
      +"created": "2018-02-01 12:12:05"
      +"createdby": "0"
      +"updated": "2021-10-26 10:02:03.243"
      +"updatedby": "0"
      +"name": "DocumentNo_M_Requisition"
      +"description": "Value for Table M_Requisition"
      +"startno": "10000000"
      +"currentnext": "81"
    }
  ]
}

您正在结果内部循环并在循环内声明 $sequence_id 变量。这将产生两个问题

1.if 结果为空,则循环不会 运行 因此变量将不存在。

2.if 循环有 5 个数据,那么 $sequence_id 将只有最后一条记录。其他变量二相同。

为此我不知道为什么你只得到最后一个值但在循环应该解决它之前将变量声明为 null。

 $sequence_id = null;
 $prefix = null;
 $no     = null;

foreach($sequence as $doc){

        $sequence_id = $doc->ad_sequence_id;
        $prefix = $doc->prefix;
        $no     = $doc->currentnext;
    }