저는 ZF3에 있는데, zend-mvc-skeleton을 사용하고 가능한 한 많은 URL과 일치 할 일반 경로를 구성하려고합니다. 물론 새로운 컨트롤러를 만들 수 있으며 (액션 메소드 포함) 즉시 사용할 수 있습니다.ZF3 zend-mvc 하나의 모듈에있는 많은 컨트롤러의 일반 경로가 작동하지 않습니다.
설명서에 설명 된 일반적인 접근 방법은 컨트롤러와 동작 (ZF2와 동일)과 일치하는 경로를 작성하는 것입니다.
여기 내 module.config.php
namespace Application;
use Zend\Router\Http\Literal;
use Zend\Router\Http\Segment;
use Zend\ServiceManager\Factory\InvokableFactory;
return [
'router' => [
'routes' => [
'home' => [
'type' => Literal::class,
'options' => [
'route' => '/',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
],
],
'default' => [
'type' => Segment::class,
'options' => [
'route' => '/application[/:controller[/:action]]',
'defaults' => [
'controller' => Controller\IndexController::class,
'action' => 'index',
],
'constraints' => [
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
],
],
],
],
],
'controllers' => [/* ... */],
'view_manager' => [/* ... */],
],
그것은 http://localhost/
및 http://localhost/application
는 /module/Application/src/IndexController.php
파일 내부의 IndexController
클래스의 indexAction()
함수를 호출에 대한 매력처럼 작동합니다.
그러나 동일한 컨트롤러 (예 : IndexController)에서 fooAction()
기능을 사용하려고하면 작동하지 않습니다. 올바르게 해결되지 않았습니다 http://localhost/application/foo
. 나는 barController
에 fooAction()
를 얻을 수 http://localhost/bar/foo
을하려고하면
A 404 error occurred
Page not found.
The requested controller could not be mapped to an existing controller class.
Controller:
foo (resolves to invalid controller class or alias: foo)
No Exception available
같은 오류 : 나는 다음과 같은 오류가 발생합니다.
이 문제가 무엇이 있는지 알고 계십니까? 어떤 도움을 주시면 감사하겠습니다. 많은 감사합니다.
오타가 잘못 작성되어 죄송합니다. 언급 한대로'http : // localhost/application/index/foo'라고 작성해야합니다. "오류"는 누락 된 별명에서 비롯된 것입니다. 이제 작동 중입니다. 고마워. –
다른 디렉토리에서이 zend 응용 프로그램을 사용하고 있습니다. 그래서 나는'http : // localhost/zend/skeleton-application/public/application/index/test'를 시도했다. 하지만 아직도 404가 나와 있네. 내가 놓친 곳에서 나를 칠할 수 있니? –
나는 골격 응용 프로그램과 함께 제공되는 파일 중 하나를 사용하고 있다고 가정 할 때 서버 구성에 문제가 있다고 생각합니다. 공개 디렉토리 내의 파일을 검사하고 다른 모든 것을 다시 index.php에 다시 써야합니다. 나는 당신이 문서 루트의 하위 디렉토리 안에 zf를 가지고 있다는 사실이 ZF3의 라우팅을 엉망으로 만든다고 생각한다. 새로운 질문으로 게시하는 것이 좋습니다. – avy