barryvdh / laravel-ide-helper

IDE Helper for Laravel
MIT License
14.19k stars 1.16k forks source link

ide-helper:models failed with function source() in model #485

Closed lemonCMS closed 4 years ago

lemonCMS commented 7 years ago

I have the following model Products:

class Products extends Model
{

  .....

  public function source()
  {
     return $this->hasOne('App\DB\ProductsSources', 'id', 'source');
  }
}

ide-helper:models failed with the following error.

HP Fatal error:  Maximum function nesting level of '256' reached, aborting! in /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php on line 115
PHP Stack trace:
PHP   1. {main}() /var/www/yucan-shop/api/artisan:0
PHP   2. Illuminate\Foundation\Console\Kernel->handle() /var/www/yucan-shop/api/artisan:35
PHP   3. Symfony\Component\Console\Application->run() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:121
PHP   4. Symfony\Component\Console\Application->doRun() /var/www/yucan-shop/api/vendor/symfony/console/Application.php:116
PHP   5. Symfony\Component\Console\Application->doRunCommand() /var/www/yucan-shop/api/vendor/symfony/console/Application.php:185
PHP   6. Illuminate\Console\Command->run() /var/www/yucan-shop/api/vendor/symfony/console/Application.php:817
PHP   7. Symfony\Component\Console\Command\Command->run() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Console/Command.php:155
PHP   8. Illuminate\Console\Command->execute() /var/www/yucan-shop/api/vendor/symfony/console/Command/Command.php:261
PHP   9. Illuminate\Container\Container->call() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Console/Command.php:169
PHP  10. call_user_func_array:{/var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:508}() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:508
PHP  11. Barryvdh\LaravelIdeHelper\Console\ModelsCommand->fire() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Container/Container.php:508
PHP  12. Barryvdh\LaravelIdeHelper\Console\ModelsCommand->generateDocs() /var/www/yucan-shop/api/vendor/barryvdh/laravel-ide-helper/src/Console/ModelsCommand.php:95
PHP  13. Barryvdh\LaravelIdeHelper\Console\ModelsCommand->getPropertiesFromMethods() /var/www/yucan-shop/api/vendor/barryvdh/laravel-ide-helper/src/Console/ModelsCommand.php:202
PHP  14. App\DB\PlaceholderProducts->source() /var/www/yucan-shop/api/vendor/barryvdh/laravel-ide-helper/src/Console/ModelsCommand.php:447
PHP  15. Illuminate\Database\Eloquent\Model->hasOne() /var/www/yucan-shop/api/app/DB/PlaceholderProducts.php:70
PHP  16. Illuminate\Database\Eloquent\Relations\HasOneOrMany->__construct() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:726
PHP  17. Illuminate\Database\Eloquent\Relations\Relation->__construct() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php:47
PHP  18. Illuminate\Database\Eloquent\Relations\HasOneOrMany->addConstraints() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php:62
PHP  19. Illuminate\Database\Eloquent\Relations\HasOneOrMany->getParentKey() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php:58
PHP  20. Illuminate\Database\Eloquent\Model->getAttribute() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/HasOneOrMany.php:402
PHP  21. Illuminate\Database\Eloquent\Model->getRelationValue() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:2623
PHP  22. Illuminate\Database\Eloquent\Model->getRelationshipFromMethod() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:2679
PHP  23. App\DB\PlaceholderProducts->source() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:2706
PHP  24. Illuminate\Database\Eloquent\Model->hasOne() /var/www/yucan-shop/api/app/DB/PlaceholderProducts.php:70
.......
PHP 254. Illuminate\Database\Eloquent\Model::resolveConnection() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3317
PHP 255. Illuminate\Database\DatabaseManager->connection() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php:3351
PHP 256. Illuminate\Database\DatabaseManager->parseConnectionName() /var/www/yucan-shop/api/vendor/laravel/framework/src/Illuminate/Database/DatabaseManager.php:62

The problem is does not occur when the function is renamed or when the returned relation within that function is removed.

Thanks in advance! Raymond

mfn commented 4 years ago

This sounds similar to https://github.com/barryvdh/laravel-ide-helper/issues/339#issuecomment-649639672 but here we've more info (the stacktrace is more useful than the strace IMHO).

@lemonCMS is this still an issue?

lemonCMS commented 4 years ago

I could not tell you, i am not longer working for the company anymore where this caused an issue.