Check for traits recursively (#1216)

* Check for traits recursively

* Remove autoload bool from class_uses_recursive

* Add test

* Update src/Console/ModelsCommand.php

Co-authored-by: Markus Podar <[email protected]>

* Updated changelog

Co-authored-by: Markus Podar <[email protected]>
This commit is contained in:
Daniël de Wit
2021-06-20 10:18:14 +02:00
committed by GitHub
co-authored by Markus Podar
parent df670747c3
commit e71f3d5fc0
6 changed files with 63 additions and 3 deletions
+3 -2
View File
@@ -1082,7 +1082,7 @@ class ModelsCommand extends Command
*/
protected function getSoftDeleteMethods($model)
{
$traits = class_uses(get_class($model), true);
$traits = class_uses_recursive($model);
if (in_array('Illuminate\\Database\\Eloquent\\SoftDeletes', $traits)) {
$modelName = $this->getClassNameInDestinationFile($model, get_class($model));
$builder = $this->getClassNameInDestinationFile($model, \Illuminate\Database\Query\Builder::class);
@@ -1105,7 +1105,8 @@ class ModelsCommand extends Command
$modelName = get_class($model);
$traits = class_uses($modelName, true);
$traits = class_uses_recursive($modelName);
if (!in_array('Illuminate\\Database\\Eloquent\\Factories\\HasFactory', $traits)) {
return;
}