【问题标题】:Manage routes with Slim framework and MAMP使用 Slim 框架和 MAMP 管理路由
【发布时间】:2017-10-03 17:06:41
【问题描述】:

在我的环境中,MAMP 和 Slim 框架之间似乎存在冲突。
我正在尝试学习 Slim,但我遇到了一种奇怪的情况,我可以为“/”创建路线,但无法为“/contact”创建路线。

$app->get('/', \App\Controllers\PagesController::class . ':home');
$app->get('/contact', \App\Controllers\PagesController::class . ':getContact');

Slim 似乎捕捉到 / 路由,但是当我在浏览器中输入 http://localhost:8888/contact/ 时,Slim 没有捕捉到请求,我有一个 404...

我尝试创建一个真正的“联系人”文件夹,其中包含一个 index.html 文件,当然它可以工作...它显示 index.html

【问题讨论】:

    标签: php mamp slim


    【解决方案1】:

    您需要将所有请求路由到index.php 文件。 Mamp 正在寻找一个在您创建之前不存在的目录结构,就像您所做的那样。

    在您应用的根文件夹中创建一个.htaccess 文件。并插入以下内容:

    RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA]

    如果您只是学习 php 和 slim,那么我建议您放弃 MAMP,而只使用集成的 PHP 服务器。从您的项目文件夹中,使用以下 CLI 命令启动服务器: PHP -S localhost:3000

    【讨论】:

    • 谢谢,但是我怎样才能以同样的方式运行 mysql 服务器呢?
    • 在不需要在mysql服务器上练习的情况下,您主要使用内置的PHP服务器。
    • 你的意思是我可以访问内置在集成 PHP 服务器中的 mysql 数据库(例如通过 PhpMyAdmin)?
    • 理论上可以,但是您必须安装 PhpMyAdmin 脚本并将其配置为访问独立的 mysqlDB。 PHP 集成服务器是单线程的,这意味着它会在某些时候阻塞。它不是为重载而设计的。
    猜你喜欢
    • 2014-08-27
    • 2015-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    相关资源
    最近更新 更多