Возникли проблемы при получении параметров значения в хранимую процедуру - PullRequest
0 голосов
/ 22 января 2019

Итак, сейчас у меня есть представление, это представление вызывается моделью таблицы, как показано ниже. затем в моем контроллере у меня есть простая процедура загрузки модели, а затем устанавливаются значения для расшифровки и где "необходимый для проверки", как показано ниже.

**inside my view**
    public function initialize(array $config)
{
    $this->setTable('admin.vCalcTranscriptUpdateTerms');       
}

   **Inside my controller before the stored procedure call**
    $transcriptsTable = $this->loadModel('UpdatedTranscripts');

    $transcript = $transcriptsTable->find()->first();

    $this->set('transcript',$transcript);
    $this->set('whereTerm',$transcript);

После того, как это используется, я перехожу к моему ctp-файлу, который является моим дисплеем, и у меня есть куча P-элементов, отображающих информацию, как показано ниже. который работает на 100% так, как я хочу и точно.

**Inside my .ctp file :**
<p value="<?= $transcript->whereTerm; ?><?= $transcript->updateTerm; ? 
>">This 
will update the transcript term from
<?= $transcript->whereTerm; ?> to <?= $transcript->updateTerm; 
?></p>

<p value="<?= $transcript->schoolYear; ?>">School Year: <?= $transcript- 
>schoolYear; ?></p>

<p value="<?= $transcript->FiscalYear; ?>">Fiscal Year: <?= $transcript- 
>FiscalYear; ?></p>

Наконец-то у меня есть контроллер и вызов хранимой процедуры. Почему значения, которые я передал в элементы P, не собираются из запроса getData? когда я проверяю страницу, значение "" показывает правильную переданную информацию, и все же она не передается в мою процедуру в качестве параметра. это очень расстраивает, что мне нужно сделать, чтобы это исправить?

**Inside my controller**
        $postedData = $this->request->getData();

        $dbConnection = ConnectionManager::get('default');

        $results = $dbConnection
        ->execute(
            'exec admin.vCalcTranscriptUpdateTermsProcedure
                            @schoolYear=:schoolYear,
                            @FiscalYear=:FiscalYear,
                            @whereTerm=:whereTerm,
                            @updateTerm=:updateTerm
                        ',
                    [
                        'schoolYear' => $postedData['schoolYear'],
                        'FiscalYear' => $postedData['FiscalYear'],
                        'whereTerm' => $postedData['whereTerm'],
                        'updateTerm' => $postedData['updateTerm'],

                    ],
                    [
                        'schoolYear' => 'string',
                        'FiscalYear' => 'smallinteger',
                        'whereTerm' => 'integer',
                        'updateTerm' => 'integer',
                    ]

Результатом будет успешное возвращение произведенных строк, но это приведет к ошибкам еще до того, как это произойдет.

Редактировать - если я добавлю что-то подобное выше, он не сохранит значения в сеансе или ugg

        $this->request->getSession()->write('App.www',$this->request->getData());

Вот некоторые ошибки, которые я получаю, когда пытаюсь загрузить веб-страницу, она говорит, что ничего не определено, почему, черт возьми, эти значения не извлекаются, когда я использую get data перед моей хранимой процедурой.

Примечание (8): неопределенный индекс: schoolYear [APP / Controller \ updatedTranscriptsController.php, строка 35] Примечание (8): неопределенный индекс: FiscalYear [APP / Controller \ ОбновленоTranscriptsController.php, строка 36] Примечание (8): неопределенный индекс: whereTerm [APP / Controller \ UpdatedTranscriptsController.php, строка 37] Примечание (8): неопределенный индекс: updateTerm [APP / Controller \ UpdatedTranscriptsController.php, строка 38] Ошибка базы данных PDOException API документации Ошибка: SQLSTATE [42000]: [Microsoft] [Драйвер ODBC 17 для SQL Server] [SQL Server] Процедура vCalcTranscriptUpdateTermsProcedure не имеет параметров и переданы аргументы.

...