Add support for composite keys (#1479)

* Add support for composite keys

* chore: add composite foreign key test
This commit is contained in:
Caleb White
2024-02-08 07:42:27 +01:00
committed by GitHub
parent 5c886fb653
commit 6115100a0f
6 changed files with 117 additions and 5 deletions
+10 -4
View File
@@ -38,6 +38,7 @@ use Illuminate\Database\Eloquent\Relations\MorphTo;
use Illuminate\Database\Eloquent\Relations\MorphToMany;
use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Filesystem\Filesystem;
use Illuminate\Support\Arr;
use Illuminate\Support\Collection;
use Illuminate\Support\Str;
use phpDocumentor\Reflection\Types\ContextFactory;
@@ -843,12 +844,17 @@ class ModelsCommand extends Command
$fkProp = $reflectionObj->getProperty('foreignKey');
$fkProp->setAccessible(true);
if ($relation === 'belongsTo') {
return isset($this->nullableColumns[$fkProp->getValue($relationObj)]) ||
!in_array($fkProp->getValue($relationObj), $this->foreignKeyConstraintsColumns, true);
foreach (Arr::wrap($fkProp->getValue($relationObj)) as $foreignKey) {
if (isset($this->nullableColumns[$foreignKey])) {
return true;
}
if (!in_array($foreignKey, $this->foreignKeyConstraintsColumns, true)) {
return true;
}
}
return isset($this->nullableColumns[$fkProp->getValue($relationObj)]);
return false;
}
/**