我正在使用symfony实现一个项目。我有一个可以找到缺失数据的函数,分页和搜索一样。我现在的问题是我收到错误声明:
注意:未定义的变量:数据输入 C:\ XAMPP \ htdocs中\供应商的\ src \供应商\ SupplierBundle \控制器\ SupplierController.php 第375行
这是我的控制器代码:
public function missingDataAction(Request $request,$page){
$request = $this->getRequest();
$refNumber = $request->query->get('poNumber');
$invNumber = $request->query->get('invNumber');
$max_records = 15 ;
$em = $this->getDoctrine()->getManager();
$asns = $em->getRepository('SupplierBundle:SupplierTransactionDetail')->findDocs($invNumber,$refNumber,'856');
foreach ($asns as $asn){
$ref_number [] = $asn->getRefNumber();
$data = $em->getRepository('SupplierBundle:SupplierTransaction')->findMissingData($refNumber, $page, 15);
$count = $data->count();
$pagination = array(
'page' => $page,
'route' => 'supplier_missingData',
'route_params' => array()
);
if ($max_records > 0 ) {
$pagination['pages_count'] = max(ceil($count / $max_records), 1 );
}
}
return $this->render('SupplierBundle:Supplier:missingData.html.twig', array('result' => $data, 'pagination' => $pagination ));
}
我不知道出了什么问题。它清楚地定义了数据,但它仍然给我一个错误。我不知道该怎么做。希望有人能看到我能看到的东西。有人可以帮助我吗?
答案 0 :(得分:0)
您从未进入循环的场景,您使用数据变量返回,但尚未定义
只需将数据变量定义(下面一行)移动到for循环上方
$data = $em->getRepository('SupplierBundle:SupplierTransaction')->findMissingData($refNumber, $page, 15);
$pagination = array(
'page' => $page,
'route' => 'supplier_missingData',
'route_params' => array()
);
foreach ($asns as $asn){
$ref_number [] = $asn->getRefNumber();
...
答案 1 :(得分:0)
我能想到两件事。
一,函数$em->getRepository('SupplierBundle:SupplierTransaction')->findMissingData($refNumber, $page, 15)
没有返回值,因此未定义$ data。
我能想到的另一件事是$ asns是一个空数组,因此foreach循环永远不会运行。因此,当您在return语句中使用$ data时,尚未定义它,因为foreach循环中定义它的代码从未运行过。
答案 2 :(得分:0)
您好回答评论to put a no result message
中的问题我会给您简短的答案,如果您需要更深入的答案,最好将其作为单独的问题发布
if( count( $asns ) ){
foreach( $asns as $asn ){
.....
}
}else{
//add no search message to result array here
}