[英]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_id
, user_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.