1

ユーザー用の pdf 変換ユーティリティを構築しています。私は働いていてCakePhp、コントローラーが Ajax 呼び出しを受信して​​います。Notice: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
4

4 に答える 4

4

noticeコードで回避するには、 isset()ORを使用する必要があります!empty()

を使用するisset()と、!empty()変数が設定されており、空の値がないかどうかを確認できます。

例えば、

if (isset($_FILES['conversionSourceFile'])) {
    // your code
}

また

if (!empty($_FILES['conversionSourceFile'])) {
    // your code
}
于 2013-09-05T09:28:35.817 に答える
3

isset$_FILES スーパーグローバル変数をチェックするだけで、設定されていないときの通知を防ぐことができます。

if (isset($_FILES['conversionSourceFile'])) {
    // Do more stuff
}
于 2013-09-05T09:20:17.653 に答える
2

次のように、「isset」または「!empty ()」を使用して、最初の条件を確認する必要があります。

if(isset($_FILES['conversionSourceFile'])){...}
于 2013-09-05T09:20:33.217 に答える
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)に対応する名前を最初に付けます。

于 2014-09-03T18:37:11.607 に答える