How to solve the problem of php controller not being found and reporting an error

藏色散人
Release: 2023-03-17 07:20:01
Original
2463 people have browsed it

Solution for PHP controller not found: 1. Check the controller folder in the original directory; 2. Modify "'auto_multi_app' =>true,"; 3. Run "php think service:discover "; 4. Re-run the code to enable multiple applications in the tp directory.

How to solve the problem of php controller not being found and reporting an error

The operating environment of this tutorial: windows7 system, thinkphp v6 version, Dell G3 computer.

How to solve the problem of php controller not being able to find the error?

TP6 multi-application module error not finding the controller

The main content is still the error reporting problem that occurs when changing a single application module to a multi-application module. It is aimed at newbies who have not learned the system.

When running the multi-application module in cmd

composer require topthink/think-multi-app
Copy after login
Copy after login

no error is reported, but the project still cannot be opened. Error

#0 [0]HttpException in Controller.php line 76
Copy after login

The controller does not exist: app\controller\Index

At this time, app\controller\ indicates that it is still in single application mode, and multiple applications have not been successfully opened. .

Possible reason 1: Delete the controller folder in the original directory, because if this file exists, the project will directly search for this file first, thinking that it is still a single application project and will not carry out multi-application projects.

Possible reason 2: (I have never encountered this situation, so I have not tried this method) Change

'auto_multi_app'   => false,
Copy after login

to

'auto_multi_app'   => true,
Copy after login
in app.php under the config folder

But in the latest version, this code is not needed. If not, there is no need to change it to indicate that this is not the reason.

Possible reason 3: Run in the project directory in cmd (note it must be in the www/tp directory)

php think service:discover
Copy after login

Possible reason 4:

composer require topthink/think-multi-app
Copy after login
Copy after login

This is the same code The running location in cmd is wrong. Under normal circumstances, many corresponding codes are executed in the www directory. However, the code to enable multi-application mode should be executed in the project directory

phpstudy_pro\WWW\tp>composer require topthink/think-multi-app
Copy after login

. Test whether this code runs successfully. , whether the project multi-application mode is enabled, you can run

php think build common
Copy after login

in the tp directory. If an error

Command "build" is not defined.
Copy after login

occurs, it means that the multi-application was not successfully enabled, and you need to re-run it in the tp directory to enable multiple applications. Just apply the code.

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to solve the problem of php controller not being found and reporting an error. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template