蛋糕PHP 3.5路线

Cake PHP 3.5 route

我有一个控制器 ShareController 和一个方法 view:

class ShareController extends AppController
{

    public  function beforeFilter(Event $event)
    {
    }

    public function index()
    {


    }

    public function view($id)
    {

        die('here');
    }

}

我有一条路线:

Router::defaultRouteClass(DashedRoute::class);
Router::extensions(['json', 'xml']);
Router::scope('/', function (RouteBuilder $routes) {
    $routes->connect('/forsale/:id', ['controller' => 'Share', 'action' => 'view'])
        ->setPatterns(['id' => '\d+'])
        ->setPass(['id']);;

    $routes->fallbacks(DashedRoute::class);
});

Router::prefix('sitecontrol', function ($routes) {
    $routes->connect('/', ['controller' => 'Admins', 'action' => 'login']);
    $routes->connect('/dashboard', ['controller'=>'Admins','action'=>'dashboard']);
    $routes->connect('/logout', ['controller'=>'Admins','action'=>'logout']);
    $routes->fallbacks('InflectedRoute');
});
/**
 * Load all plugin routes. See the Plugin documentation on
 * how to customize the loading of plugin routes.
 */
Plugin::routes();

当我访问 http://thewebsite/forsale/197 时,我被重定向到:http://thewebsite/users/login?redirect=%2Fforsale%2F197

是什么导致了这种重定向?我期待看到 "here"。

谢谢

由于身份验证模块,您被重定向到登录页面。由于您不允许未登录用户查看操作,因此您需要绕过查看操作的身份验证。请修改beforefilter函数如下:

public function beforeFilter(Event $event)
{
    parent::beforeFilter($event);
    $this->Auth->allow('view');
}