yii
(jammi )
August 20, 2010, 2:15pm
1
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!
yii
(jammi )
August 20, 2010, 2:49pm
2
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
mikl
(Mike)
August 22, 2010, 8:16am
3
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
alle übergebenen Parameter in der Regel vorkommen
die Regex für alle Parameter passen
Was für ein Problem hast du genau bei Formularen?
yii
(jammi )
August 26, 2010, 12:05pm
4
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!
mikl
(Mike)
August 27, 2010, 7:39am
5
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.