我正在与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]
答案 0 :(得分:0)
将您的代码更改为此
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;
}
在你的控制器中并调用它来发送响应。
答案 1 :(得分:-1)
如果没有出现错误,那么您的数据适合您的模型的规则验证,但可能是在保存数据库时创建错误,
您是否在表格的列上应用了任何约束(例如唯一,非空)。它们也限制在表中保存错误的数据。