在Symfony项目

时间:2015-09-28 20:33:42

标签: php forms symfony

我有一个非Symfony项目,我希望将其包含在Symfony项目中。

项目在

等形式中有很多相对路径
<form action="actions/check.php"> 
    <input type="text" name="pages">
    <input type="submit" value="Check">
</form>

或包含include '../include/class.php';

等文件

完全改变它在Symfony中工作会非常麻烦,那么有没有办法让这些相对路径在Symfony项目中工作?

我已将项目包含在捆绑包内的文件夹中,但显然提交表单会将我发送到网站上不存在的相对页面,因为没有为该页面定义路径。例如,对于上述表单,我是mywebsite/actions/check.php发送的。

为那些创建路由不会做太多,因为我需要为它们创建Symfony控制器,这意味着我需要重做项目,并从这些控制器中的原始文件中复制/粘贴代码。

是否可以在Symfony项目中使用非Symfony代码和相对路径?我认为相对包含路径可行,但表单行为怎么样?

1 个答案:

答案 0 :(得分:1)

您正在尝试将脚本作为静态文件提供,绕过路由器。 通常有框架用来提供CSS,JS,JPG,PNG等的静态路由......你的静态.PHP文件应该放在那个文件夹中。

这个答案:Rendering static content in Symfony2 project讨论如何绕过带有.htaccess文件的symfony路由器,我认为你已经有了一个条件(RewriteCond):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

它告诉我们的是:如果文件存在于文件夹结构中,它将不会使用路由器并按原样提供。