2

私はphp phalconと言語自体にかなり慣れていません。抽象クラスと派生クラスを含む Web サイトを作成しています。

抽象クラス:

<?php

abstract class UsersAbstract extends \Phalcon\Mvc\Model {

    private $Full_Name; //
    private $Mobile_Number; //
    private $Email_ID; //
    private $City; //
    private $Country;  //
    private $DoB; //
    private $Gender; //
    private $Age; //
    private $Availability_Flag;   /*value of flag is 1 for active and 0 for inactive*/


    /********setters and getters for all data members which I have not written here*******/


    public function getSource()
    {
        return 'users_abstract';
    }
} 

派生クラス

<?php
class UserPatients extends UsersAbstract
{
    private $Patient_ID;
    private $Guardian_Name;
    private $Doctors = array();

    public function getSource()
    {
        return 'user_patients';
    }

    /***************setter and getter for patient id*******************/
    public function getPatientID()
    {
        return $this->Patient_ID;
    }
    public function setPatientID($value)
    {
        $this->Patient_ID = $value;
    }

    /****************setter and getter for guardian name******************/
    public function getGuardianName()
    {
        return $this->Guardian_Name;
    }
public function setGuardianName($value)
{
    $this->Guardian_Name = $value;
}

/****************getter and setter for doctor array*********************/
public function getDoctors()
{
    return $this->Doctors;
}

public function setDoctors($value)
{
    $this->Doctors = $value;
}} 

私のコントローラーでは、ビュー内のフォームからデータを読み取っています。クラス UserPatients のオブジェクトが宣言され、そのデータ メンバーが設定されます。コントローラーの PatientSignInController で呼び出しているアクション メソッドは次のとおりです。

public function SaveAction()
    {
       if (!empty($_POST)){
            $patient_data = new UserPatients();
            $patient_data->setFull_Name($_POST['Full_Name']);
            $patient_data->setGuardianName($_POST['Guardian_Name']);
            $patient_data->setDoB($_POST['DoB']);
            $patient_data->setAge($_POST['Age']);
            $patient_data->setGender($_POST['gender']);
            $patient_data->setMobile_Number($_POST['Contact_No']);
            $patient_data->setEmail_Address($_POST['Email_ID']);
            $patient_data->setCity($_POST['City']);
            $patient_data->setCountry($_POST['Country']);
            $patient_data->setPatientID($_POST['Patients_ID']);
            $patient_data->setFlag(1);

            $doctorsArray = array("ACD","ABC"); //some hard coded values for the time being
            $patient_data->setDoctors($doctorsArray);

            $patient_medical_info = new PatientInfo();

            $patient_medical_info->setBP($_POST['BP']);
            $patient_medical_info->setTemperature($_POST['Temperature']);
            $patient_medical_info->setInformation($_POST['Info']);
            $patient_medical_info->setPatientID($_POST['Patients_ID']);
            $patient_medical_info->setDateOfMeeting(date("d/m/y"));

           $patient_data->save();
           $patient_medical_info->save();


          $this->response->redirect("../../../../WebMCare/PatientSignIn/Index");

       }
    }

データベースの構造はこれらのクラスと同じUsers_Abstractです。抽象クラスのすべての属性を持つテーブルUser_Patientsと、子クラスのすべての属性を持つテーブルがあります。

ビューでフォームの保存ボタンを押してデータベース テーブルを確認すると、新しいエントリがpatient_infoテーブルに追加されていることがわかりました。これは、が機能していることを意味し$patient_medical_info->save()ます。

ただし、テーブルは関連するデータを取得しますがusers_abstract、テーブルには対応するオブジェクトの新しいデータは含まれませんuser_patients。save メソッドのエラー メッセージを確認しましたが、何も返されませんでした。オンラインで何も見つからないようです。私を助けてください。

12 個の属性すべてを持つ 1 つのテーブルをクラスUsersAbstractUser_Patients. それでもうまくいきません。

4

0 に答える 0