Skip to content
This repository was archived by the owner on Jul 16, 2023. It is now read-only.

Commit df3f4f3

Browse files
nightowl77igorsantos07
authored andcommitted
updateUniques now has a bit more flexibility, Reflection methods removed from buildUniqueExclusionRules
1 parent e56e6b5 commit df3f4f3

File tree

1 file changed

+15
-32
lines changed

1 file changed

+15
-32
lines changed

src/LaravelBook/Ardent/Ardent.php

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -759,44 +759,27 @@ protected function buildUniqueExclusionRules(array $rules = array()) {
759759
$ruleset = (is_string($ruleset))? explode('|', $ruleset) : $ruleset;
760760

761761
foreach ($ruleset as &$rule) {
762-
if (strpos($rule, 'unique') === 0) {
763-
$params = explode(',', $rule);
764-
765-
$uniqueRules = array();
766-
767-
// Append table name if needed
768-
$table = explode(':', $params[0]);
769-
if (count($table) == 1)
770-
$uniqueRules[1] = $this->table;
771-
else
772-
$uniqueRules[1] = $table[1];
773-
774-
// Append field name if needed
775-
if (count($params) == 1)
776-
$uniqueRules[2] = $field;
777-
else
778-
$uniqueRules[2] = $params[1];
779-
780-
if (isset($this->primaryKey)) {
781-
$uniqueRules[3] = $this->{$this->primaryKey};
782-
$uniqueRules[4] = $this->primaryKey;
783-
}
784-
else {
785-
$uniqueRules[3] = $this->id;
762+
if (strpos($rule, 'unique') === 0) {
763+
$params = explode(',', $rule);
764+
765+
// Append field name if needed
766+
if (count($params) == 1) {
767+
$params[1] = $field;
768+
}
769+
770+
// if the 3rd param was set, do not overwrite it
771+
if (!is_numeric(@$params[2])) $params[2] = $this->id;
772+
773+
$rule = implode(',', $params);
786774
}
787-
788-
$rule = 'unique:' . implode(',', $uniqueRules);
789-
} // end if strpos unique
790-
791-
} // end foreach ruleset
775+
}
792776
}
793-
777+
794778
return $rules;
795779
}
796780

797781
/**
798-
* Update a model, but filter uniques first to ensure a unique validation rule
799-
* does not fire
782+
* Update a model already saved in the database.
800783
*
801784
* @param array $rules
802785
* @param array $customMessages

0 commit comments

Comments
 (0)