eee
This commit is contained in:
@@ -266,13 +266,13 @@ class Model extends Base\Model
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ModelInterface|string $modelName
|
* @param string $modelName
|
||||||
* @param string $foreignKey
|
* @param string $foreignKey
|
||||||
* @param string $localKey
|
* @param string $localKey
|
||||||
* @return string
|
* @return string
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
private function _hasBase(ModelInterface|string $modelName, string $foreignKey, string $localKey): string
|
private function _hasBase(string $modelName, string $foreignKey, string $localKey): string
|
||||||
{
|
{
|
||||||
if (($value = $this->{$localKey}) === null) {
|
if (($value = $this->{$localKey}) === null) {
|
||||||
throw new Exception("Need join table primary key.");
|
throw new Exception("Need join table primary key.");
|
||||||
@@ -280,7 +280,7 @@ class Model extends Base\Model
|
|||||||
|
|
||||||
$relation = $this->getRelation();
|
$relation = $this->getRelation();
|
||||||
|
|
||||||
$primaryKey = $modelName . $foreignKey . $value;
|
$primaryKey = str_replace('\\\\', '_', $modelName) . '_' . $foreignKey . '_' . $value;
|
||||||
if (!$relation->hasIdentification($primaryKey)) {
|
if (!$relation->hasIdentification($primaryKey)) {
|
||||||
$relation->bindIdentification($primaryKey, $modelName::query()->where([$foreignKey => $value]));
|
$relation->bindIdentification($primaryKey, $modelName::query()->where([$foreignKey => $value]));
|
||||||
}
|
}
|
||||||
@@ -289,51 +289,51 @@ class Model extends Base\Model
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ModelInterface|string $modelName
|
* @param string $modelName
|
||||||
* @param string $foreignKey
|
* @param string $foreignKey
|
||||||
* @param string $localKey
|
* @param string $localKey
|
||||||
* @return HasOne|ActiveQuery
|
* @return HasOne|ActiveQuery
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function hasOne(ModelInterface|string $modelName, string $foreignKey, string $localKey): HasOne|ActiveQuery
|
public function hasOne(string $modelName, string $foreignKey, string $localKey): HasOne|ActiveQuery
|
||||||
{
|
{
|
||||||
return new HasOne($this->_hasBase($modelName, $foreignKey, $localKey));
|
return new HasOne($this->_hasBase($modelName, $foreignKey, $localKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ModelInterface|string $modelName
|
* @param string $modelName
|
||||||
* @param string $foreignKey
|
* @param string $foreignKey
|
||||||
* @param string $localKey
|
* @param string $localKey
|
||||||
* @return ActiveQuery|HasCount
|
* @return ActiveQuery|HasCount
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function hasCount(ModelInterface|string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasCount
|
public function hasCount(string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasCount
|
||||||
{
|
{
|
||||||
return new HasCount($this->_hasBase($modelName, $foreignKey, $localKey));
|
return new HasCount($this->_hasBase($modelName, $foreignKey, $localKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ModelInterface|string $modelName
|
* @param string $modelName
|
||||||
* @param string $foreignKey
|
* @param string $foreignKey
|
||||||
* @param string $localKey
|
* @param string $localKey
|
||||||
* @return ActiveQuery|HasMany
|
* @return ActiveQuery|HasMany
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function hasMany(ModelInterface|string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasMany
|
public function hasMany(string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasMany
|
||||||
{
|
{
|
||||||
return new HasMany($this->_hasBase($modelName, $foreignKey, $localKey));
|
return new HasMany($this->_hasBase($modelName, $foreignKey, $localKey));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param ModelInterface|string $modelName
|
* @param string $modelName
|
||||||
* @param string $foreignKey
|
* @param string $foreignKey
|
||||||
* @param string $localKey
|
* @param string $localKey
|
||||||
* @return ActiveQuery|HasMany
|
* @return ActiveQuery|HasMany
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function hasIn(ModelInterface|string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasMany
|
public function hasIn(string $modelName, string $foreignKey, string $localKey): ActiveQuery|HasMany
|
||||||
{
|
{
|
||||||
if (($value = $this->{$localKey}) === null) {
|
if (($value = $this->{$localKey}) === null) {
|
||||||
throw new Exception("Need join table primary key.");
|
throw new Exception("Need join table primary key.");
|
||||||
@@ -341,7 +341,7 @@ class Model extends Base\Model
|
|||||||
|
|
||||||
$relation = $this->getRelation();
|
$relation = $this->getRelation();
|
||||||
|
|
||||||
$primaryKey = $modelName . $foreignKey . json_encode($value, JSON_UNESCAPED_UNICODE);
|
$primaryKey = str_replace('\\\\', '_', $modelName) . '_' . $foreignKey . '_' . implode('_', $value);
|
||||||
if (!$relation->hasIdentification($primaryKey)) {
|
if (!$relation->hasIdentification($primaryKey)) {
|
||||||
$relation->bindIdentification($primaryKey, $modelName::query()->whereIn($foreignKey, $value));
|
$relation->bindIdentification($primaryKey, $modelName::query()->whereIn($foreignKey, $value));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user