无法将值参数存储到存储过程中

时间:2019-01-22 16:31:07

标签: cakephp cakephp-3.0

所以现在我有一个视图,此视图由表模型调用,如下所示。然后在我的控制器中,我有一个简单的加载模型过程,然后将值设置为transcript,并在其中设置“需要检查”,如下所示。

**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>

最后,我有了我的控制器并调用了存储过程。为什么我没有从getData请求中收集传递给P元素的值?当我检查页面时,值“”显示正确的传递信息,但未将其作为参数传递给我的过程。为了解决这个问题,这非常令人沮丧吗?

**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());

当我尝试加载网页时,我遇到了一些错误,这是在说什么都没有定义好,为什么当我在存储过程之前使用获取数据时,为什么不检索值呢?

通知(8):未定义索引:schoolYear [APP / Controller \ UpdatedTranscriptsController.php,第35行] 注意(8):未定义索引:FiscalYear [APP / Controller \ UpdatedTranscriptsController.php,第36行] 注意(8):未定义索引:whereTerm [APP / Controller \ UpdatedTranscriptsController.php,第37行] 注意(8):未定义索引:updateTerm [APP / Controller \ UpdatedTranscriptsController.php,第38行] 数据库错误 PDOException 文档API 错误:SQLSTATE [42000]:[Microsoft] [用于SQL Server的ODBC驱动程序17] [SQL Server]过程vCalcTranscriptUpdateTermsProcedure没有提供参数和参数。

0 个答案:

没有答案