我正在为我的用户构建一个pdf转换实用程序。
我在CakePhp
工作,我的控制器正在接收Ajax调用。
为什么我得到注意:8 错误
控制器:
public function convertToPdf() {
$this->autoRender = false;
$pdf = new WkHtmlToPdf;
//$this->RequestHandler->respondAs('json');
// echo $convertData = json_encode($inputVal);
if ($this->RequestHandler->isAjax()) {
$pdfName = uniqid();
if ($_FILES['conversionSourceFile']) {
echo "File";
$pdf->addPage($_FILES['conversionSourceFile']['tmp_name']);
} elseif ($_POST['conversionSourceUrl']) {
echo "Url";
$pdf->addPage($_POST['conversionSourceUrl']);
} elseif ($_POST['conversionSourceHtml']) {
echo "Html";
$pdf->addPage('<html>' . $_POST['conversionSourceHtml'] . '</html>');
}
$saveToPath = 'upload/' . $pdfName . '.pdf';
if ($pdf->saveAs($saveToPath)) {
echo 'upload/' . $pdfName . '.pdf';
}
}
}
错误: 注意(8):未定义的索引:conversionSourceFile [APP / Controller / PdfsController.php,第42行] 代码上下文
if ($this->RequestHandler->isAjax()) {
$pdfName = uniqid();
if ($_FILES['conversionSourceFile']) {
PdfsController::convertToPdf() - APP/Controller/PdfsController.php, line 42
ReflectionMethod::invokeArgs() - [internal], line ??
Controller::invokeAction() - CORE/Cake/Controller/Controller.php, line 486
Dispatcher::_invoke() - CORE/Cake/Routing/Dispatcher.php, line 187
Dispatcher::dispatch() - CORE/Cake/Routing/Dispatcher.php, line 162
[main] - APP/webroot/index.php, line 109
答案 0 :(得分:4)
要避免代码中出现notice
,您必须使用isset()
或!empty()
。
使用isset()
和!empty()
,您可以检查变量是否已设置且没有空值。
e.g,
if (isset($_FILES['conversionSourceFile'])) {
// your code
}
OR
if (!empty($_FILES['conversionSourceFile'])) {
// your code
}
答案 1 :(得分:3)
只需检查isset
$ _FILES超全局变量,以防止未设置时发出通知。
if (isset($_FILES['conversionSourceFile'])) {
// Do more stuff
}
答案 2 :(得分:2)
您需要检查第一个条件,使用“isset”或“!empty()”,如:
if(isset($_FILES['conversionSourceFile'])){...}
答案 3 :(得分:1)
我解决了错误“Notice(8):Undefined index”更改var $使用的命令。
之前:
class GastosController extends AppController {
var $uses = array('Comprobante','Gasto','TipoGasto');
... ... ..
后:
class GastosController extends AppController {
var $uses = array('Gasto','Comprobante','TipoGasto');
.. .. ..
首先输入与班级(Gasto)对应的名称。