barryvdh / laravel-ide-helper

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

Can't generate PHPDocs for models when using Compoships #1340

Closed azizramdan closed 7 months ago

azizramdan commented 2 years ago

Versions:

Description:

I use Compoships to support multi-columns relation, but now I can't generate PHPDocs for models.

Steps To Reproduce:

Trace

Exception: Illegal offset type in isset or empty
Could not analyze class App\Models\ApproveReorganisasi.

Trace:
#0 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\barryvdh\laravel-ide-helper\src\Console\ModelsCommand.php(746): Barryvdh\LaravelIdeHelper\Console\ModelsCommand->isRelationNullable('belongsTo', Object(Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo))     
#1 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\barryvdh\laravel-ide-helper\src\Console\ModelsCommand.php(293): Barryvdh\LaravelIdeHelper\Console\ModelsCommand->getPropertiesFromMethods(Object(App\Models\ApproveReorganisasi))
#2 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\barryvdh\laravel-ide-helper\src\Console\ModelsCommand.php(177): Barryvdh\LaravelIdeHelper\Console\ModelsCommand->generateDocs(Array, Array)
#3 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(36): Barryvdh\LaravelIdeHelper\Console\ModelsCommand->handle()
#4 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Container\Util.php(41): Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
#5 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(93): Illuminate\Container\Util::unwrapIfClosure(Object(Closure))
#6 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Container\BoundMethod.php(37): Illuminate\Container\BoundMethod::callBoundMethod(Object(Illuminate\Foundation\Application), Array, Object(Closure))
#7 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Container\Container.php(653): Illuminate\Container\BoundMethod::call(Object(Illuminate\Foundation\Application), Array, Array, NULL)
#8 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Console\Command.php(171): Illuminate\Container\Container->call(Array)
#9 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\symfony\console\Command\Command.php(291): Illuminate\Console\Command->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#10 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Console\Command.php(156): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Illuminate\Console\OutputStyle))
#11 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\symfony\console\Application.php(989): Illuminate\Console\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#12 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\symfony\console\Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(Barryvdh\LaravelIdeHelper\Console\ModelsCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#13 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\symfony\console\Application.php(171): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#14 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Console\Application.php(102): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput)) 
#15 E:\xampp\htdocs\bkd-redistribusi-staf\vendor\laravel\framework\src\Illuminate\Foundation\Console\Kernel.php(129): Illuminate\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
#16 E:\xampp\htdocs\bkd-redistribusi-staf\artisan(37): Illuminate\Foundation\Console\Kernel->handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#17 {main}
Exception: Illegal offset type in isset or empty
Could not analyze class App\Models\UsulanReorganisasi.
calebdw commented 1 year ago

For anyone that comes across this in the future, I was able to fix this error with the following config options in ide-helper.php

    'additional_relation_types' => [
        'belongsTo'        => Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo::class,
    ],

    'additional_relation_return_types' => [
        'belongsTo' => 'many',
    ],
ikudosi commented 1 year ago

For anyone that comes across this in the future, I was able to fix this error with the following config options in ide-helper.php

    'additional_relation_types' => [
        'belongsTo'        => Awobaz\Compoships\Database\Eloquent\Relations\BelongsTo::class,
    ],

    'additional_relation_return_types' => [
        'belongsTo' => 'many',
    ],

Worked for me - ty!

mfn commented 7 months ago

config option is the way to go, no bug here -> closing