本文整理汇总了PHP中SurveyDynamic::findAllByAttributes方法的典型用法代码示例。如果您正苦于以下问题:PHP SurveyDynamic::findAllByAttributes方法的具体用法?PHP SurveyDynamic::findAllByAttributes怎么用?PHP SurveyDynamic::findAllByAttributes使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SurveyDynamic
的用法示例。
在下文中一共展示了SurveyDynamic::findAllByAttributes方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: update_response
/**
* RPC Routine to update a response in a given survey.
* Routine supports only single response updates.
* Response to update will be identified either by the response id, or the token if response id is missing.
* Routine is only applicable for active surveys with alloweditaftercompletion = Y.
*
* @access public
* @param string $sSessionKey Auth credentials
* @param int $iSurveyID Id of the Survey to update response
* @param struct $aResponseData The actual response
* @return mixed TRUE(bool) on success. errormessage on error
*/
public function update_response($sSessionKey, $iSurveyID, $aResponseData)
{
if (!$this->_checkSessionKey($sSessionKey)) {
return 'Invalid session key';
}
$oSurvey = Survey::model()->findByPk($iSurveyID);
if (is_null($oSurvey)) {
return 'Error: Invalid survey ID';
}
if ($oSurvey->getAttribute('active') !== 'Y') {
return 'Error: Survey is not active.';
}
if ($oSurvey->getAttribute('alloweditaftercompletion') !== 'Y') {
return 'Error: Survey does not allow edit after completion.';
}
if (Permission::model()->hasSurveyPermission($iSurveyID, 'responses', 'update')) {
if (!Yii::app()->db->schema->getTable('{{survey_' . $iSurveyID . '}}')) {
return 'Error: No survey response table';
}
if (!isset($aResponseData['id']) && !isset($aResponseData['token'])) {
return 'Error: Missing response identifier (id|token).';
}
SurveyDynamic::sid($iSurveyID);
$oSurveyDynamic = new SurveyDynamic();
if (isset($aResponseData['id'])) {
$aResponses = $oSurveyDynamic->findAllByPk($aResponseData['id']);
} else {
$aResponses = $oSurveyDynamic->findAllByAttributes(array('token' => $aResponseData['token']));
}
if (empty($aResponses)) {
return 'Error: No matching Response.';
}
if (count($aResponses) > 1) {
return 'Error: More then one matching response, updateing multiple responses at once is not supported.';
}
$aBasicDestinationFields = $oSurveyDynamic->tableSchema->columnNames;
$aInvalidFields = array_diff_key($aResponseData, array_flip($aBasicDestinationFields));
if (count($aInvalidFields) > 0) {
return 'Error: Invalid Column names supplied: ' . implode(', ', array_keys($aInvalidFields));
}
unset($aResponseData['token']);
foreach ($aResponseData as $sAtributeName => $value) {
$aResponses[0]->setAttribute($sAtributeName, $value);
}
$bResult = $aResponses[0]->save(true);
if ($bResult) {
return $bResult;
} else {
return 'Unable to edit response';
}
} else {
return 'No permission';
}
}