簡體   English   中英

Yii-在3個表之間保存數據

[英]Yii - Saving Data between 3 tables

我正在使用Yii和jQuery Mobile。 我目前有3個表:Users,Projects和ShareProjects。 我已經能夠創建一個功能來顯示與該用戶共享的項目,但是我正在努力將用戶分配給項目。 我已經嘗試過此代碼,但到目前為止仍未成功。

public function actionShareProjects() {  
   $model=new SharedProjects;
   if(isset($_POST['SharedProjects'])) {
      $model->attributes=$_POST['SharedProjects'];
      $model->project_id = "project_id";
      $model->user_id = "user_id";
      $model->sharedProject_id = "";
      $model->sharedCreateDate= date('Y-m-d G:i:s');
      if($model->save()) {
         echo json_encode(array('action'=>'success', 'message'=>''));
      } else {
          echo json_encode(array('action'=>'error', 'message'=>'Incorrect'));
      }
   }
}

在項目中,有一個共享按鈕,它帶有項目ID,但我試圖允許用戶輸入您要與之共享的用戶的電子郵件。

我嘗試在郵遞員上手動輸入它,但是失敗了,沒有出現錯誤,但是沒有保存任何數據。 我使用了正確的輸入:

SharedProjects [user_id] 
SharedProjects [project_id] 
SharedProjects [sharedProject_id]
SharedProjects [sharedCreateDate]

將您的代碼更改為此

public function actionShareProjects() {  
   $model=new SharedProjects;
   if (isset($_POST['SharedProjects'])) {
      $model->attributes=$_POST['SharedProjects'];
      $model->sharedCreateDate= date('Y-m-d H:i:s');
      if($model->save()) {
         $this->sendResponse(array('action'=>'success', 'message'=>''));
      } else {
         $this->sendResponse(array('action'=>'error', 'message'=>'Incorrect'));
      }
   }
}

並確保已設置project_iduser_id且類型為int 為了更好地發送JSON響應,可以添加此功能

public function sendResponse($data)
{
    header('Content-Type: application/json; charset=utf-8');
    echo CJSON::encode($data);
    exit;
}

在控制器中並調用它以發送響應。

如果沒有錯誤出現,則說明您的數據適用於模型的規則驗證,但可能是在保存數據庫時造成了錯誤,

您是否在表的列上應用了任何約束(例如unique,不是null)。 它們還被限制為將錯誤的數據保存在表中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM