gpt4 book ai didi

php - FOSJSRoutingBundle : "Route xxx does not exist"

转载 作者:IT王子 更新时间:2023-10-28 23:51:09 26 4
gpt4 key购买 nike

我在使用 FOSJSRoutingBundle 时遇到了一个非常奇怪的问题:

首先,这是我的配置:我正在使用 Symfony 2.0.23 和 JQuery,在带有 WAMP(Apache 2.4.2 和 PHP 5.4.3)的 Windows 7 64 位上工作。我已经完成了 FOSJSRoutingBundle 的 github 上的所有设置,并公开了我的路线(我可以通过谷歌搜索找到的几乎所有相关问题(在 FOSJSRoutingBundle 的 github、here 和不同的论坛上)都是因为人们没有公开他们的路线,但我试过了php app/console fos:js-routing:debug 并且我确实看到了我的路由)。js添加到布局中(布局代码在最后)。

尝试在js中为路由生成url,一开始我想生成两个不同的路由,但为了测试我创建了下面的js代码:

    //Code inside this function is working
$("select").change(function () {
param=this.options[this.selectedIndex].value;
test1=Routing.generate('myBundle_step3', { myParam: param });
alert(test1);
window.location=Routing.generate('myBundle_step2');
});
//Code inside this one is also working
$('input[type="checkbox"]').change(function() {
test=Routing.generate('myBundle_step2');
}).change();
//This is not working
test=Routing.generate('myBundle_step2');
alert(test);

使用此代码,我收到 javaScript 错误“路径 myBundle_step2 不存在”。虽然第一部分仍然有效(警报给了我创建的链接并且重定向顺利)。如果我删除第二个函数,我不会再收到 Javascript 错误。

如果在第二个函数中我将 step2 替换为 step3,则错误变为“路由 myBundle_step3 不存在”。我试图清除缓存并再次运行 php app/console asset:install --symlink,但没有结果。

这里是 Controller 对应的代码(实际代码有点长,我觉得不相关,如果你这么认为,我可以随便写:

    namespace my\Bundle\Controller;
class IndividuController extends Controller
{
public function step2Action() {
Some code
}
public function step3Action($myParam) {
Some code
}
}

相对于 bundle 的 routing.yml 配置文件:

    myBundle_step2:
pattern: /step/2
defaults: {_controller: myBundle:Individu:step2}
options:
expose: true
myBundle_step3:
pattern: /step/3/{myParam}
defaults: {_controller: myBundle:Individu:step3}
options:
expose: true

app/config/routing.yml 文件:

    fos_js_routing:
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"

myBundle:
resource: "@myBundle/Resources/config/routing.yml"
prefix: /

布局的相关信息:

     <!-- jQuery via Google + local fallback, see h5bp.com -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"> </script>
<script>window.jQuery || document.write('<script src="js/jquery-1.7.1.min.js"><\/script>')</script>
{% javascripts 'bootstrap/js/bootstrap.js'
'bundles/fosjsrouting/js/router.js'
'bundles/crrisuaps/js/suaps.js' %}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
<script src="{{ path('fos_js_routing_js', {"callback": "fos.Router.setData"}) }}"></script>
</body>
</html>

php 应用程序/控制台路由器的结果:调试(我只留下了相关信息 + 我留下了 undefined variable 通知以防万一,这是我添加这个库后收到的通知,但该库仍然有效,我不认为问题可能来自这里:

C:\wamp\www\suapsRepo\suaps>php app/console router:debug

Notice: Undefined variable: kPathUrl in C:\wamp\www\suapsRepo\suaps\vendor\html2 pdf_class\tcpdfConfig.php on line 80

Call Stack: 0.0070 231536 1. {main}() C:\wamp\www\suapsRepo\suaps\app\console:0 0.0209 685656 2. require_once('C:\wamp\www\suapsRepo\suaps\app\bootstr ap.php.cache') C:\wamp\www\suapsRepo\suaps\app\console:10 0.0212 701752 3. require_once('C:\wamp\www\suapsRepo\suaps\app\autoloa d.php') C:\wamp\www\suapsRepo\suaps\app\bootstrap.php.cache:3 0.1335 2998152 4. require_once('C:\wamp\www\suapsRepo\suaps\vendor\html 2pdf\html2pdf.class.php') C:\wamp\www\suapsRepo\suaps\app\autoload.php:51 0.1379 3361792 5. require_once('C:\wamp\www\suapsRepo\suaps\vendor\html 2pdf_class\myPdf.class.php') C:\wamp\www\suapsRepo\suaps\vendor\html2pdf\html2p df.class.php:19 0.1385 3393792 6. require_once('C:\wamp\www\suapsRepo\suaps\vendor\html 2pdf_class\tcpdfConfig.php') C:\wamp\www\suapsRepo\suaps\vendor\html2pdf_class \myPdf.class.php:12

[router] 当前路由

    Name                                            Method Pattern
_assetic_55f0319 ANY /css/55f0319.css
_assetic_55f0319_0 ANY /css/55f0319_bootstrap_1.
css
_assetic_55f0319_1 ANY /css/55f0319_bootstrap-re
sponsive_2.css
_assetic_55f0319_2 ANY /css/55f0319_style_3.css
_assetic_3608a04 ANY /js/3608a04.js
_assetic_3608a04_0 ANY /js/3608a04_bootstrap_1.j
s
_assetic_3608a04_1 ANY /js/3608a04_router_2.js
_assetic_3608a04_2 ANY /js/3608a04_suaps_3.js

fos_js_routing_js ANY /js/routing.{_format}
myBundle_homepage ANY /

myBundle_inscription_etape1 ANY /inscription/etape/1
myBundle_inscription_etape2 ANY /inscription/etape/2
myBundle_inscription_etape3 ANY /inscription/etape/3/{dis
ciplineSelection}

php app/console fos:js-routing:debug 的结果(我删除了 PHP 通知,但它发生在我发出的每个命令上):

    C:\wamp\www\suapsRepo\suaps>php app/console fos:js-routing:debug
[router] Current routes
Name Method Pattern
crrisuapsBundle_inscription_etape2 ANY /inscription/etape/2
crrisuapsBundle_inscription_etape3 ANY /inscription/etape/3/{disciplineSelect
ion}

编辑:另外,不知道它是否相关,但是当我尝试 'php app/console fos:js-routing:debug myBundle_step2' 我得到以下 php 错误:

[Error Exception] Warning: Missing argument 3 for Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand:outputRoute(), called in C:\symfonyDirectory\vendor\bundles\FOS\JsRoutingBundle\Command\RouterDebugExposedCommand.php on line 62 and defined in C:\serverDirectory\vendor\symfony\src\Symfony\Bundle\FrameworkBundle\Command\RouterDebugCommand.php line 98

最佳答案

我也有这个问题。在路由配置上设置 options.expose 参数为我解决了这个问题。

routing.yml

cart_edit:
pattern: /Cart/edit
defaults: { _controller: CartCartBundle:Default:cart_edit }
options:
expose: true

my.js

var url = Routing.generate('cart_edit');
$.post(url, function(data) {
//do somthing
});

根据需要进行更改。希望这能解决您的问题。

关于php - FOSJSRoutingBundle : "Route xxx does not exist",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16030900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com