Probleme mit mehreren Parametern im URLManager

Hallo,

ich habe mehrere Parameter in meinen Rules drinnen, jedoch übernimmt yii diese nicht!

Ich kriege ständig die alte URL. Kann der URL Manager nicht mit mehr als einem Parameter umgehen?




'/<value:[a-zA-Zö\-\+[:space:]]+>/<languages:[a-zA-Zö\-\+[:space:]]+>'	=> 'translation/phrase',



Ausgabe:

translation/phrase/value/spielen.html

Meine view




	<input type="text" name="languages" value="german"/>

	<input type="text" name="value" value="<?php echo $_GET['value']; ?>"/> 



danke für eure Antworten!

Fehler gefunden!

Wer einen zusätzlichen Parameter in der Rules definiert, der muss auch allen Links etc. die auf die Rule zugreifen den Parameter mitgeben!

[edit]

Ich habe den Fehler bei Formularen noch nicht behoben. Vielleicht sieht jemand den Fehler

Du solltest dazu sagen, mit welchen Parametern du createUrl() aufrufst (Oder CHtml::link() oder was auch immer eine URL erzeugt). Eine Regel wird beim Erstellen einer URL nur verwendet, wenn

  1. alle übergebenen Parameter in der Regel vorkommen

  2. die Regex für alle Parameter passen

Was für ein Problem hast du genau bei Formularen?

URLs werden richtig erstellt.

Mein Problem ist jedoch, dass das Formular und die darausfolgenden URLs nicht übernommen werden.

Mein URL-MANAGER




return array(

	''			=>	'site/index',

	'kontakt'		=>	'site/contact',

	'impressum'		=>	'site/impressum',

	'google'		=>	'site/google',

	'/<value:[a-zA-Zö\-\+[:space:]]+>/<languages:[a-zA-Zö\-\+[:space:]]+>'  => 'translation/phrase'

);



Meine Form:


<?php echo CHtml::beginForm(array('translation/search'), 'get', array('name' => 'frm') ); ?>

<?php 

$sWert = $_GET['value'];

$this->widget('CAutoComplete',

array(

	'name'=>'value', 


	'url'		=>	array('translation/autoCompleteLookup'), 

	'max'		=>	10,

 

	'minChars'	=>	2, 

	'delay'		=>	200,

	'matchCase'	=>	true,

 

	'htmlOptions'=>array('size'=>'40', 'autocomplete' => 'off', 'id' => 'searchfield', 'value' => $sWert), 

));

?>


<select name="languages">

	<option value="autos">autos</option>

	<option value="house">house</option>

</select>


<?php echo CHtml::endForm(); ?>

Dennoch kommt diese URL immer aus

http://localhost/translation/search.html?value=spielen&languages=autos

An dieser Stelle komme ich einfach nicht weiter!

Diese URL wird von deinem Browser erzeugt, wenn du ein Formular mit GET abschickst. Daran kannst du nichts ändern.

Also entweder:

  • URL-Regeln von Yii so ändern, dass diese URLs akzeptiert werden

  • POST statt GET als Methode verwenden.