Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

tomirons's avatar

Such a weird error...

I'm getting this really weird error...

[2016-01-13 01:32:58] production.ERROR: exception 'ErrorException' with message 'Undefined index: favicon.ico' in /var/www/app/Player.php:29
Stack trace:
#0 /var/www/app/Player.php(29): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError(8, 'Undefined index...', '/var/www/app/Pl...', 29, Array)
#1 [internal function]: App\Player->scopeSubType(Object(Illuminate\Database\Eloquent\Builder), 'favicon.ico')
#2 /var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(835): call_user_func_array(Array, Array)
#3 /var/www/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(946): Illuminate\Database\Eloquent\Builder->callScope('scopeSubtype', Array)
#4 [internal function]: Illuminate\Database\Eloquent\Builder->__call('subtype', Array)
#5 [internal function]: Illuminate\Database\Eloquent\Builder->subtype('favicon.ico')
#6 /var/www/bootstrap/cache/compiled.php(11262): call_user_func_array(Array, Array)
#7 [internal function]: Illuminate\Database\Eloquent\Model->__call('subtype', Array)
#8 [internal function]: App\Player->subtype('favicon.ico')
#9 /var/www/bootstrap/cache/compiled.php(11267): call_user_func_array(Array, Array)
#10 /var/www/app/Http/Controllers/Front/RankingController.php(31): Illuminate\Database\Eloquent\Model::__callStatic('subtype', Array)
#11 /var/www/app/Http/Controllers/Front/RankingController.php(31): App\Player::subtype('favicon.ico')
#12 [internal function]: App\Http\Controllers\Front\RankingController->getPlayer(Object(Illuminate\Http\Request), 'favicon.ico')
#13 /var/www/bootstrap/cache/compiled.php(8873): call_user_func_array(Array, Array)
#14 /var/www/bootstrap/cache/compiled.php(8942): Illuminate\Routing\Controller->callAction('getPlayer', Array)
#15 /var/www/bootstrap/cache/compiled.php(8922): Illuminate\Routing\ControllerDispatcher->call(Object(App\Http\Controllers\Front\RankingController), Object(Illuminate\Routing\Route), 'getPlayer')
#16 [internal function]: Illuminate\Routing\ControllerDispatcher->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#17 /var/www/bootstrap/cache/compiled.php(9593): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#18 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#19 /var/www/bootstrap/cache/compiled.php(9575): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#20 /var/www/bootstrap/cache/compiled.php(8923): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#21 /var/www/bootstrap/cache/compiled.php(8908): Illuminate\Routing\ControllerDispatcher->callWithinStack(Object(App\Http\Controllers\Front\RankingController), Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'getPlayer')
#22 /var/www/bootstrap/cache/compiled.php(7862): Illuminate\Routing\ControllerDispatcher->dispatch(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request), 'App\\Http\\Contro...', 'getPlayer')
#23 /var/www/bootstrap/cache/compiled.php(7833): Illuminate\Routing\Route->runWithCustomDispatcher(Object(Illuminate\Http\Request))
#24 /var/www/bootstrap/cache/compiled.php(7486): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
#25 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#26 /var/www/bootstrap/cache/compiled.php(9593): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#27 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /var/www/bootstrap/cache/compiled.php(9575): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#29 /var/www/bootstrap/cache/compiled.php(7487): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#30 /var/www/bootstrap/cache/compiled.php(7475): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#31 /var/www/bootstrap/cache/compiled.php(7460): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#32 /var/www/bootstrap/cache/compiled.php(2307): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#33 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#34 /var/www/bootstrap/cache/compiled.php(9593): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#35 /var/www/app/Http/Middleware/SetLanguage.php(35): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 [internal function]: App\Http\Middleware\SetLanguage->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#38 /var/www/app/Http/Middleware/EmptyCharacterIfServerOffline.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#39 [internal function]: App\Http\Middleware\EmptyCharacterIfServerOffline->handle(Object(Illuminate\Http\Request), Object(Closure))
#40 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#41 /var/www/app/Http/Middleware/ApplicationEnabled.php(36): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 [internal function]: App\Http\Middleware\ApplicationEnabled->handle(Object(Illuminate\Http\Request), Object(Closure))
#43 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#44 /var/www/bootstrap/cache/compiled.php(2925): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#45 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#46 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#47 /var/www/bootstrap/cache/compiled.php(12957): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#48 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#49 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#50 /var/www/bootstrap/cache/compiled.php(11551): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#53 /var/www/bootstrap/cache/compiled.php(12694): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#54 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#55 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#56 /var/www/bootstrap/cache/compiled.php(12631): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#58 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#59 /var/www/bootstrap/cache/compiled.php(2982): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#60 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#61 /var/www/bootstrap/cache/compiled.php(9585): call_user_func_array(Array, Array)
#62 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#63 /var/www/bootstrap/cache/compiled.php(9575): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
#64 /var/www/bootstrap/cache/compiled.php(2254): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#65 /var/www/bootstrap/cache/compiled.php(2237): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#66 /var/www/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#67 {main}  

This is the code of the that function:

public function scopeSubType( $query, $sub )
    {
        $column = [
            'level' => 'level',
            'rep' => 'reputation',
            'time' => 'time_used',
            'pvp' => 'pk_count'
        ];

        return $query
            ->whereNotIn( 'id', explode( ',', settings( 'ranking_ignore_roles' ) ) )
            ->orderBy( $column[ $sub ], 'desc' );
    }

And here's the line where it's being called from:

$ranks = Faction::subtype( $request->segment( 3 ) )->paginate();

Could it be since I'm using the $request->segment()?

0 likes
3 replies
nfauchelle's avatar
Level 11

@Hulu

Sounds like it. If you look at the access logs you'll probably see something like

http://yoursite.com/something/somthing/favicon.ico

Before your query you should probably do

$sub = isset($column[$sub]) ? $sub : 'level';

where level would be a default if there is no $sub or $sub doesn't match a column.

1 like
nfauchelle's avatar

Infact I would probably break that out to a function.

        public function scopeSubType( $query, $sub )
    {
        return $query
            ->whereNotIn( 'id', explode( ',', settings( 'ranking_ignore_roles' ) ) )
            ->orderBy( $this->getOrderByColumn($sub) , 'desc' );
    }

    public function getOrderByColumn($columnReference)
    {
        $columns = [
            'level' => 'level',
            'rep' => 'reputation',
            'time' => 'time_used',
            'pvp' => 'pk_count'

        ];
        $defaultColumnReference = 'level';

        if(!isset($columns[$columnReference])) {
            $columnReference = $defaultColumnReference;
        }

        return $columns[ $columnReference ];
    }

you could then extract that $columns out to the model, $sortableColumns - because you probably use them elsewhere?

Please or to participate in this conversation.