我有一个简单的API,简单地获取_GET变量并将它们用作我的控制器中的Where子句。如果语句不工作在Laravel控制器
public function MUIntervalAPICall(Request $dte)
{
$date = $dte->dte;
$element_language = $dte->language;
$element_customer = $dte->customer;
$element_contract = $dte->contract;
$element_subcontract = $dte->subcontract;
$element = $dte->element;
$mu_interval= MUInterval::select('element_customer', 'element_contract', 'element_subcontract', 'element_language', 'element_site', 'element', 'src_id', 'src_type_id', 'dte', 'intvl', 'val_src_id', 'exception_name', 'duration_seconds', 'duration_fte')
->where('dte', $date)
if(isset($_GET['customer'])){
->where('element_customer', $element_customer)
}
->get()
->toArray();
function array_to_xml($data, &$xml_data) {
foreach($data as $key => $value) {
if(is_array($value)) {
$key = 'Exception';
$subnode = $xml_data->addChild($key);
array_to_xml($value, $subnode);
} else {
$xml_data->addChild("$key",htmlspecialchars("$value"));
}
}
}
$xml_data = new SimpleXMLElement('<?xml version="1.0"?><muExceptions></muExceptions>');
array_to_xml($mu_interval,$xml_data);
$result = $xml_data->asXML();
return Response::make($result, '200')->header('Content-Type', 'text/xml');
}
}
它只是检查URL是否在URL中设置了客户。例如2016-14-03?客户=苹果。但由于某种原因,我得到这个错误:
我注释了if语句和右大括号,它实际上工作并提取日期和客户。
->where('dte', $date)
->where('element_customer', $element_customer)
->get()
->toArray();
我想知道是否有我缺少的命名空间,或者如果'if'语句不适用于这样的控制器。
我尝试了上面的内容,并且在APIController.php中得到了一个FatalErrorException第4行:命名空间声明语句必须是第一个语句或在脚本中的任何声明调用之后。第4行是控制器所在的位置.namespace App \ Http \ Controllers \ API; – Odinovsky
只需检查命名空间声明之前是否有任何内容。文件应该从'<?php'开始,在第三行你应该有类似'namespace App \ Http \ Controllers \;' –
Nice ..这真的很有用..谢谢很多先生.. :)我;我得到了(0)使用error_reporting;命名空间前.. – Odinovsky