无法在Cakephp4中找到保存记录的错误

iugsix8n  于 2022-11-11  发布在  PHP
关注(0)|答案(2)|浏览(162)

我正在尝试在cakephp 4中保存一个新的表单数据记录。这段代码在cakephp3.2中可以运行,并且已经更新,但是不起作用。我的问题是,我只是得到返回false?当我尝试保存时,我不能对“false”做很多事情。我在$tutor上尝试了getErrors,也没有被识别。我如何找到错误在哪里?

$tutor = $this->Tutors->newEmptyEntity();
            $tutor = $this->Tutors->patchEntity($tutor,$saveData,
                [
                    'associated' => [
                            'AvailabilityForTutors'=>["validate"=>false],
                            'AvailabilityForAssessments'=>["validate"=>false],
                            'Subjects'=>["validate"=>false]
                    ],
                    "validate"=>false
                ]);

            // debug($tutor);

            $tutor = $this->Tutors->save($tutor,[
                'validate' => false,
                'associated' => [
                    'AvailabilityForTutors',
                     'AvailabilityForAssessments',
                    'Subjects'
                ]
            ]);

             debug($tutor);//returns false? this doesnt tell me anything

 https://book.cakephp.org/4/en/orm/saving-data.html
mrzz3bfm

mrzz3bfm1#

我至少会将保存操作移到表中,并将其 Package 在if/else中,以检查是否确实发生了保存操作,如果没有正确记录,则返回一个错误。要获得该错误,请将保存更改为以下代码:

if ($this->Tutors->save($tutor,[
    'validate' => false,
        'associated' => [
            'AvailabilityForTutors',
            'AvailabilityForAssessments',
            'Subjects'
         ]
])){
    return $tutor;
} else {
Log::write(
    'emergency',
        'Unable to store tutor'
    );
    foreach ($tutor->getErrors() as $errorKey => $errorValue){
        Log::write(
            'emergency',
            'Error with field '.$errorKey
        );
    }
}

不要忘记包括:使用蛋糕\日志\日志;
运行代码并检查日志文件夹中的日志

ha5z0ras

ha5z0ras2#

我更改了保存时的返回值,并可以测试错误
$result = $this-〉导师-〉保存($NewTutor,[
我可以得到错误在NewTutor

相关问题