2014-12-19 141 views
1

我在模型PatientDetail.php中創建了一個函數。Yii2:將函數值的返回值保存到數據庫中

該函數運行良好並返回所需的值,但我無法將其保存在數據庫中。

public function getRoomCategory(){ 
    $model = \app\models\RoomCategory::find('id') 
    ->innerJoin('room_charges','room_charges.room_category=room_category.id') 
    ->innerjoin('patient_detail', 'room_charges.id = patient_detail.bed_type')    
    ->Where(['patient_detail.id'=> $this->id])->one(); 

    return $model; 

    } 

我在模型中作爲「room_category」字段/列,我要保存在數據庫中的函數getRoomCategory的返回值。

我試圖與像getroom_category(){}相同的名稱創建函數,但我沒有得到的表單字段的任何值在我_form.php這個

我也試過在我的控制器,如:

if(isset($_POST['RoomCategory'])){ 
       $RoomCategory = $_POST['RoomCategory']; 

      $model->room_category=$RoomCategory; 
      $model->save(); 
      } 

將計算值保存到數據庫的最佳方法是什麼? 感謝您的寶貴指導。

+0

這是什麼邏輯背後?因爲根據你的代碼,它看起來像'room_category'應該是一個關係。 – topher 2014-12-19 12:55:05

+0

我在上面的'getRoomCategory'中創建了一個函數,並在我的_form中包含了'字段($ model,'RoomCategory') - > textInput(['maxlength'=> 50])>'我有一個字段'room_category',我想通過函數'getRoomCategory'返回的值保存在DB中。 – Pawan 2014-12-19 14:09:46

+0

跟蹤:〜if($ model-> validate()){ $ model-> save(); } else { var_dump($ model-> errors); }〜 – TNC 2014-12-22 09:09:32

回答

0

看來,規則的模型的驗證是不是讓你保存它,以便如果妳希望將其保存,而不驗證,你可以這樣做:

if(isset($_POST['RoomCategory'])){ 

    $RoomCategory = $_POST['RoomCategory']; 

    $model->room_category=$RoomCategory; 
    $model->save(false); 
     } 
相關問題