0
を助ける:取り付けサイレックスルート、私はこのような次のルートを登録する必要
$app->register(new HomeServiceProvider());
$app->register(new UserServiceProvider());
$app->mount('/', new HomeControllerProvider());
$app->mount('/', new UserControllerProvider());
両方のコントローラは、このような機能を持っている:
$controllers->get("/", 'home.controller:index')
->bind('homepage');
$controllers->get("/", 'user.controller:collection')
->bind('users');
をそして、私がに行くとき、私はホームページを見ることができます次のURL:
/Testing/demo/web/index.php
QUESTION:
システム内で唯一のルートがあるように、あなたがこれを修正するにはどうすればよい:
$app->mount('/home', new HomeControllerProvider());
$app->mount('/user', new UserControllerProvider());
しかし、私はちょうど次のために404を取得する:私は上記のマウントを変更しようとしている
/Testing/demo/home
/Testing/demo/user
:
/Testing/demo/web/index.php/home
/Testing/demo/web/index.php/user
/Testing/demo/web/home
/Testing/demo/web/user
/Testing/demo/home
/Testing/demo/user
プロジェクト構造:
root
-src
--Home
--User
---UserController.php
---UserControllerProvider.php
---UserModel.php
---UserRepository.php
---UserServideProvider.php
--Application.php
-web
--.htaccess
--index.php
の.htaccessファイル:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /src
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule^index.php [QSA,L]
</IfModule>
私はここで何かが足りないのですか?
EDITS:
// UserController.php
<?php
namespace App\User;
use App\Application;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class UserController
{
protected $app;
public function __construct(Application $app)
{
$this->app = $app;
}
public function collection()
{
return $this->app['twig']->render('user/collection.html.twig', [
'users' => $this->app['user.repository']->collection()
]);
}
}
// UserControllerProvider.php
<?php
namespace App\User;
use Silex\Application;
use Silex\ControllerProviderInterface;
class UserControllerProvider implements ControllerProviderInterface
{
public function connect(Application $app)
{
$controllers = $app['controllers_factory'];
$controllers->get("/", 'user.controller:collection')
->bind('user.collection');
return $controllers;
}
}
、コードとMax.p更新日質問@ –
をHomeControllerProviderとUserControllerProviderのコードをしてください提供 –