2016-07-01 3 views
0

나는 Cakephp를 연구 중이다. default.ctp에서 나는 같은 링크를 제공합니다Cakephp가 잘못된 경로로 간다

<li><?= $this->Html->link('List',['controller' => 'Products', 'action' => 'index']) ?></li> 

나는 또한 ProductsController.php가 있습니다.

<?php 

namespace App\Controller; 

use Cake\Controller\Controller; 
use Cake\Event\Event; 
use Cake\ORM\TableRegistry; 

class ProductsController extends AppController { 

public function initialize(){ 
parent::initialize(); 
$this->loadcomponent('Flash'); 
} 
public function index(){ 
$products = $this->Products->find('all'); 
$this->set(compact('products')); 
} 

하지만 난 그 링크를 클릭 할 때이

  1. 오류와 같은 오류 제공 : WebrootController를 찾을 수 없습니다.
  2. 오류 : 파일에 아래의 클래스 WebrootController 만들기 : SRC/컨트롤러/WebrootController.php

클릭 토글 인수에이

object(Cake\Network\Request) { 
params => [ 
    'plugin' => null, 
    'controller' => 'Webroot', 
    'action' => 'products', 
    '_ext' => null, 
    'pass' => [], 
    '_matchedRoute' => '/:controller/:action/*', 
    'isAjax' => false 
] 
data => [] 
query => [] 
cookies => [ 
    '__atuvc' => '1|21' 
] 
url => 'webroot/products/' 
base => '/cakephp' 
webroot => '/cakephp/' 
here => '/cakephp/webroot/products/' 
trustProxy => false 

날이 오류를 해결하는 데 도움이 바랍니다 보여줍니다.

답변

0

응용 프로그램 루트 폴더와 webroot 폴더에 두 개의 .htaccess 파일이 있는지 확인하십시오.

와 htaccess로 재정이 허용되어 있는지 확인하고에 AllowOverride가 올바른 DocumentRoot에

http://book.cakephp.org/3.0/en/installation.html#url-rewriting

+0

에 대한 모든으로 설정되어 있음이 두 .htaccess 파일이 존재한다. 하나는 웹 루트에 있고 다른 하나는 프로젝트 폴더에 있습니다 @ Alex Stallen –

+0

그리고 내용이 링크와 동일한 지 확인 했습니까? .htaccess 재정의가 허용되고 올바른 DocumentRoot에 대해 AllowOverride가 모두로 설정되었는지 확인하십시오 –

관련 문제