Skip to content

Defining routes to a controller, Reflection errors #884

@DaWolfey

Description

@DaWolfey
  • Themosis Version: 3.0.0
  • WordPress Version: 6.1.1
  • PHP Version: 8.1

Description

I must be doing something wrong here, my Laravel experience is not all that high so I am perfectly willing to accept user error, especially for such a rudimentary task.
I am getting errors when I try to define a route to a controller, either using the [Pagecontroller::class,'page'] methor, or the 'PageController@page' method.

Steps to reproduce

Fresh installation of Themosis with Wordpress, set app_debug to true in .env
Create a page in Wordpress named Test
Create a new controller with Artisan named PageController
In that controller add:

    public function Test() {
        return view('welcome');
    }

In routes/web.php add a route:
Route::any('page', ['test', 'uses' => [PageController::class,'Test']]);

Accessing the page via site.com/test gives:
ReflectionFunction::__construct(): Argument #1 ($function) must be of type Closure|string, array given

If the route is changed the other method as given in the docs:
Route::any('page', ['test', 'uses' => 'PageController@Test']);

We now get a new error:
Target class [PageController] does not exist.

Note that if the route is:
Route::any('page', ['test', 'uses' => 'App\Http\Controllers\PageController@Test']);

It does work as expected, but the documentation explicitly says that it shouldn't be necessary.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions