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

Marlon's avatar

How to extending BaseController when constructor has params

Hello!

I am just trying to inject some classes in my "BaseController" but when I call it I got an error "Call to a member function <function()> on null".

I'll show my code. Please help me to know if it is a good practice and where I made a mistake

<?php namespace EstudioLMS\Http\Controllers;

use Illuminate\Foundation\Bus\DispatchesCommands;
use Illuminate\Routing\Controller as BaseController;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Translation\Translator;
use mjanssen\BreadcrumbsBundle\Breadcrumbs;

abstract class Controller extends BaseController {

    use DispatchesCommands, ValidatesRequests;

    protected $translator;
    protected $breadCrumb;

    public function __construct(Translator $translator, Breadcrumbs $breadCrumb)
    {
        $this->translator = $translator;
        $this->breadCrumb = $breadCrumb;
    }
}

And my Controller

<?php
namespace EstudioLMS\Http\Controllers\Auth;

use EstudioLMS\Http\Controllers\Controller;
use EstudioLMS\Http\Requests\UserRequest;
use EstudioLMS\Http\Social\AuthenticateFacebook;
use EstudioLMS\User;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Http\Request;

class AuthController extends Controller {

    public function __construct(Guard $auth)
    {
        $this->auth = $auth;
        $this->middleware('guest', ['except' => ['getLogout', 'postSignUpStudent']] );
    }

    public function getIndex()
    {
        $this->breadCrumb->addBreadcrumb('Login - Cadastro', '/auth');
        $bread = $this->breadCrumb->generate();
        return view('site.auth', compact('bread'));
    }
}

When I run the getIndex I got the error "Call to a member function addBreadcrumb() on null"

Anyone have any clue?

Thanks in advance!

0 likes
1 reply

Please or to participate in this conversation.