本文整理汇总了PHP中CActiveRecord::getPrimaryKey方法的典型用法代码示例。如果您正苦于以下问题:PHP CActiveRecord::getPrimaryKey方法的具体用法?PHP CActiveRecord::getPrimaryKey怎么用?PHP CActiveRecord::getPrimaryKey使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CActiveRecord
的用法示例。
在下文中一共展示了CActiveRecord::getPrimaryKey方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: guessObjectName
/**
* @param CActiveRecord $model
* @param string $default
* @return array|mixed|null|string
*/
public static function guessObjectName(CActiveRecord $model, $default = '?')
{
if (isset($model->name)) {
return $model->name;
}
if (isset($model->title)) {
return $model->title;
}
$pk = $model->getPrimaryKey();
if (is_array($pk)) {
// Clé composite, on laisse tomber pour le moment
return $default;
}
if (is_null($pk)) {
return $default;
}
return $pk;
}
示例2: equals
/**
* Compares current active record with another one.
* The comparison is made by comparing table name and the primary key values of the two active records.
* @param CActiveRecord $record record to compare to
* @return boolean whether the two active records refer to the same row in the database table.
*/
public function equals($record)
{
return $this->tableName() === $record->tableName() && $this->getPrimaryKey() === $record->getPrimaryKey();
}
示例3: isDescendant
/**
* Является ли текущий объект потомком для модели из параметров
* @param DaActiveRecord $model
*/
public function isDescendant(CActiveRecord $model, $checkSelf = false)
{
if ($checkSelf && $this->owner->getPrimaryKey() == $model->getPrimaryKey()) {
return true;
}
return $this->getParentById($model->getPrimaryKey()) !== null;
}
示例4: getPrimaryKey
/**
*### .getPrimaryKey()
*
* Helper function to return the primary key of the $data
* IMPORTANT: composite keys on CActiveDataProviders will return the keys joined by comma
*
* @param CActiveRecord $data
*
* @return null|string
*/
protected function getPrimaryKey($data)
{
if ($this->dataProvider instanceof CActiveDataProvider) {
$key = $this->dataProvider->keyAttribute === null ? $data->getPrimaryKey() : $data->{$this->keyAttribute};
return is_array($key) ? implode(',', $key) : $key;
}
if ($this->dataProvider instanceof CArrayDataProvider || $this->dataProvider instanceof CSqlDataProvider) {
return is_object($data) ? $data->{$this->dataProvider->keyField} : $data[$this->dataProvider->keyField];
}
return null;
}
示例5: Save
/**
* Переопределенная функция сохранения пользователя.
* Помимо сохранения данных пользователя, присваиваются выбранные права доступа
*
* @param type $runValidation
* @param type $attributes
* @throws CHttpException
*/
public function Save($runValidation = true, $attributes = null)
{
/* $selectedRows - массив выбранных ролей пользователя */
$selectedRows = (string) filter_input(INPUT_POST, 'items') !== '' ? json_decode((string) filter_input(INPUT_POST, 'items'), true) : [];
/* $_POST['oper'] может быть "edit" или "add", редактирование или добавление новой записи */
if ((string) filter_input(INPUT_POST, 'oper') === '') {
throw new CHttpException(500, 'Отсутствует POST переменная "oper"');
}
/* ИД пользователя, который редактируется, если необходим */
$editid = (string) filter_input(INPUT_POST, 'editid');
if ((string) filter_input(INPUT_POST, 'oper') === 'edit' && $editid === '') {
throw new CHttpException(500, 'Отсутствует POST переменная "editid"');
}
/* Имя сценария, может быть "NewUser" - проверяет введеный пароль и подтверждение на совпадение.
* Используется при добавлении нового пользотваеля, или смене пароля */
$scenario = (string) filter_input(INPUT_POST, 'scenario');
if ($scenario === 'NewUser') {
$this->password = CPasswordHelper::hashPassword($this->password);
}
/* Хэшируем новый пароль */
/* Сохраняем модель пользователя и присваиваем роли */
if (parent::save($runValidation, $attributes) !== false) {
$auth = Yii::app()->authManager;
/* Удаляем все роли пользователя при сохранении изменений профиля пользователя */
if ($editid !== '' && $scenario === '') {
$assigned_roles = Yii::app()->authManager->getAuthAssignments($editid);
foreach (array_keys($assigned_roles) as $AuthItem) {
$auth->revoke($AuthItem, $editid);
}
}
/* Присваиваем выбранные роли пользователю */
if (count((array) $selectedRows) > 0) {
foreach (array_keys($selectedRows) as $AuthItem) {
$auth->assign($AuthItem, parent::getPrimaryKey());
}
Yii::app()->authManager->save();
}
}
}
示例6: deleteRecord
/**
* @param CActiveRecord $model
* @param $type
*/
protected function deleteRecord(CActiveRecord $model, $type)
{
Yii::app()->db->createCommand()->delete('{{exchange1c}}', 'object_id=:object_id AND object_type=:object_type', array(':object_id' => $model->getPrimaryKey(), ':object_type' => $type));
}
示例7: afterSave
public function afterSave()
{
$this->_originalKey = parent::getPrimaryKey();
$result = parent::afterSave();
return $result;
}
示例8: Save
/**
* Переопределенная функция сохранения группы LDAP.
* Помимо сохранения данных группы LDAP, присваиваются выбранные права доступа
*
* @param type $runValidation
* @param type $attributes
* @throws CHttpException
*/
public function Save($runValidation = true, $attributes = null)
{
/* $selectedRows - массив выбранных ролей группы LDAP */
$selectedRows = (string) filter_input(INPUT_POST, 'items') !== '' ? json_decode((string) filter_input(INPUT_POST, 'items'), true) : [];
/* $_POST['oper'] может быть "edit" или "add", редактирование или добавление новой записи */
if ((string) filter_input(INPUT_POST, 'oper') === '') {
throw new CHttpException(500, 'Отсутствует POST переменная "oper"');
}
/* ИД группы LDAP, который редактируется, если необходим */
$editid = (string) filter_input(INPUT_POST, 'editid');
$oper = (string) filter_input(INPUT_POST, 'oper');
if ($oper === 'edit' && $editid === '') {
throw new CHttpException(500, 'Отсутствует POST переменная "editid"');
}
/* Сохраняем модель группы LDAP и присваиваем роли */
if (parent::save($runValidation, $attributes) !== false) {
/* $auth = Yii::app()->authManager; */
/* Удаляем все роли группы LDAP при сохранении изменений профиля групп LDAP */
if ($editid !== '') {
AuthAssignmentLdap::model()->deleteAll('groupid = :groupid', array(':groupid' => $editid));
}
/* Присваиваем выбранные роли группе LDAP */
if ($editid === '' && $oper === 'add') {
$editid = parent::getPrimaryKey();
}
if (count((array) $selectedRows) > 0) {
foreach (array_keys($selectedRows) as $AuthItem) {
$model = new AuthAssignmentLdap();
$model->itemname = $AuthItem;
$model->groupid = $editid;
$model->save();
}
}
}
}
示例9: _resolvePrimaryAttributes
/**
* Resolves primary key attributes (name => value).
*
* @param CActiveRecord $record record to resolve primary key
*
* @return array primary key attributes
*/
private static function _resolvePrimaryAttributes($record)
{
$key = $record->getMetaData()->tableSchema->primaryKey;
$primaryAttributes = $record->getPrimaryKey();
if (is_array($key)) {
return $primaryAttributes;
} else {
return array($key => $primaryAttributes);
}
}