mam do czynienia z naprawdę dziwny problem z FOSJSRoutingBundle:FOSJSRoutingBundle: „xxx Trasa nie istnieje”
Przede wszystkim, tutaj jest moja konfiguracja: Pracuję nad Symfony 2.0.23 i JQuery, na Windows 7 64 bity z WAMP (Apache 2.4.2 i PHP 5.4.3). Zrobiłem wszystkie ustawienia z github FOSJSRoutingBundle i haved odsłonił moje trasy (prawie wszystkie związane problemy, które mogłem znaleźć przez googling (na github FOSJSRoutingBundle, tutaj i na różnych forach) były, ponieważ ludzie nie ujawnili swoich tras, ale ja wypróbowałem php app/console fos: js-routing: debug i widzę moje trasy). Js jest dodawane do układu (kod układu na końcu).
Próbując wygenerować adres URL dla tras w JS, na początku chciałem wygenerować dwie różne drogi, ale na teście Stworzyłem kod js poniżej:
//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);
Z tego kodu, pojawia się błąd javascript " Trasa myBundle_step2 nie istnieje ". Chociaż pierwsza część nadal działa (alert daje mi link utworzony i przekierowanie idzie dobrze). Jeśli usunę drugą funkcję, nie otrzymam już błędu Javascript. Jeśli w drugiej funkcji zastępuję krok2 na krok3, błąd staje się "Trasa myBundle_step3 nie istnieje". Próbowałem wyczyścić pamięć podręczną i uruchomić zasoby aplikacji app/console: ponownie zainstaluj --symlink, ale bez rezultatów.
Oto kod kontroler odpowiadający (prawdziwy kod jest trochę za długa i nie sądzę, że to istotne, jeśli tak uważasz, mogę umieścić go tak czy inaczej:
namespace my\Bundle\Controller;
class IndividuController extends Controller
{
public function step2Action() {
Some code
}
public function step3Action($myParam) {
Some code
}
}
routing.yml config plik w stosunku do wiązki:
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 file/routing.yml:
fos_js_routing:
resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
myBundle:
resource: "@myBundle/Resources/config/routing.yml"
prefix: /
Th Odpowiednie informacje layout e za:
<!-- 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>
Wynik php routera app/konsoli: debug (zostawiłem tylko odpowiednie informacje + opuściłem niezdefiniowanej zmiennej zawiadomienie na wszelki wypadek, to zawiadomienie Dostałem od dodałem tej biblioteki, nadal prace biblioteczne i nie sądzę, problem może pochodzić stąd:
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] Current routes
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}
Wynik php fos app/konsoli: jS-routing: debug (usunąłem Wskazówka PHP, ale to się dzieje na każdym poleceniu robię btw):
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}
Edycja: Również nie wiem, czy to istotne, ale gdy próbuję 'php fos app/console: JS-routing: debugowania myBundle_step2' pojawia się następujący błąd PHP:
[Error Wyjątek] Warning: Missing argument 3 dla Symfony \ Bundle \ FrameworkBundle \ Command \ RouterDebugCommand: outputRoute(), wywołany w C: \ katalog_funkcji \ vendor \ bundles \ FOS \ JsRoutingBundle \ Command \ RouterDebugExposedCommand.php na linii 62 i zdefiniowany w C: \ serverDirectory \ vendor \ symfony \ src \ Symfony \ Bundle \ FrameworkBundle \ Command \ RouterDebugCommand.php line 98
Czy możesz pokazać nam kontrolera tych dwóch działań za pomocą konfiguracji opisów/xml trasy? – stedekay
Edytowałem i dodawałem cały routing.yml + kod kontrolera. – MisterJ
Czy dodałeś js do swojego układu? Zobacz [tutaj] (https://github.com/FriendsOfSymfony/FOSJsRoutingBundle/blob/master/Resources/doc/README.markdown#usage) – Erioch