doutang2017 2016-06-24 09:37
浏览 58
已采纳

symfony中PHP文件的路径

I am practicing unit test for AJAX call in Symfony 2.8.

Here is my code in a .js file. I call it in my TWIG :

<script>
QUnit.test("test dynamic fill", function (assert) {
            var ajax = $("#ajax"); //my div to fill
            $("#feed_the_ajax").click(function () {
                $.ajax({
                    url: "echo.php",
                    type: "POST",
                    data: {text: "Hello world !"},
                    success: function (data) {
                        ajax.text(data);
                    },
                    error: function () {
                    }
                });
                assert.ok(!ajax.text() == "Hello world !", "Hello !");
            });
            assert.ok(!ajax.text() == "Hello world !", "Answer me ...");
        });
</script>

echo.php file is just like this :

<?php
if($_POST['text'] != ""){
    return $_POST['text'];
}

When I run the code, it tells me that "echo.php" is not found. I guess that I have to specify the route for the file.

I didn't modify anything in the server configuration. Here is my config.yml file :

imports:
    - { resource: parameters.yml }
    - { resource: security.yml }
    - { resource: services.yml }

# Put parameters here that don't need to change on each machine where the app is deployed
# http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
parameters:
locale: en

framework:
    #esi:             ~
    #translator:      { fallbacks: ["%locale%"] }
    secret:          "%secret%"
router:
    resource: "%kernel.root_dir%/config/routing.yml"
    strict_requirements: ~
form:            ~
csrf_protection: ~
validation:      { enable_annotations: true }
#serializer:      { enable_annotations: true }
templating:
    engines: ['twig']
default_locale:  "%locale%"
trusted_hosts:   ~
trusted_proxies: ~
session:
    # handler_id set to null will use default session handler from php.ini
    handler_id:  ~
fragments:       ~
http_method_override: true

# Twig Configuration
twig:
debug:            "%kernel.debug%"
strict_variables: "%kernel.debug%"

# Doctrine Configuration
doctrine:
dbal:
    driver:   pdo_mysql
    host:     "%database_host%"
    port:     "%database_port%"
    dbname:   "%database_name%"
    user:     "%database_user%"
    password: "%database_password%"
    charset:  UTF8
    # if using pdo_sqlite as your database driver:
    #   1. add the path in parameters.yml
    #     e.g. database_path: "%kernel.root_dir%/data/data.db3"
    #   2. Uncomment database_path in parameters.yml.dist
    #   3. Uncomment next line:
    #     path:     "%database_path%"

orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true

# Swiftmailer Configuration
swiftmailer:
transport: "%mailer_transport%"
host:      "%mailer_host%"
username:  "%mailer_user%"
password:  "%mailer_password%"
spool:     { type: memory }

Thanks for your answers, Telest

  • 写回答

2条回答 默认 最新

  • douqiao6563 2016-06-24 11:03
    关注

    Your server does not allow anything else as app.php or app_dev.php.

    For example if your server is NginX and you use the recommanded NginX configuration :

    http://symfony.com/doc/current/cookbook/configuration/web_server_configuration.html#nginx

    You have this block, which throws your 404 error ... :

    # return 404 for all other php files not matching the front controller
    # this prevents access to other php files you don't want to be accessible.
    location ~ \.php$ {
      return 404;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 springboot+vue 集成keycloak sso到阿里云
  • ¥15 win7系统进入桌面过一秒后突然黑屏
  • ¥30 backtrader对于期货交易的现金和资产计算的问题
  • ¥15 求C# .net4.8小报表工具
  • ¥15 安装虚拟机时出现问题
  • ¥15 Selenium+docker Chrome不能运行
  • ¥15 mac电脑,安装charles后无法正常抓包
  • ¥18 visio打开文件一直显示文件未找到
  • ¥15 请教一下,openwrt如何让同一usb储存设备拔插后设备符号不变?
  • ¥50 使用quartz框架进行分布式任务定时调度,启动了两个实例,但是只有一个实例参与调度,另外一个实例没有参与调度,不知道是为什么?请各位帮助看一下原因!!