У меня есть следующий view-код для ввода ключа поиска от пользователя:
<?php echo CHtml::beginForm(Yii::app()->createUrl('home/search'),'get',array('accept-charset'=>'UTF-8',
'enctype'=>'multipart/form-data'));?>
<div class="search-box">
<div class="input-box left">
<input type="text" name="q" id="t-search" class="txt-box"placeHolder="<?php echo Yii::t('website', 'enter.search.keyword.here'); ?>"/>
</div>
<div class="left">
<input type="submit" id="b-search" class="btn main-bg" value="GO"/>
</div>
</div>
<?php echo CHtml::endForm();?>
В контроллере у меня есть следующие действия поиска:
public function actionSearch($q)
{
Yii::app()->theme = "website";
$this->layout = '//layouts/main';
$this->pageTitle = Yii::t('website', 'search.result');
$result = Yii::app()->db->createCommand('call search_procedure('."'".$q."'".')')->queryAll() ;
$this->render('search', array('result'=>$result));
}
Код отлично работает с английским языком, но когда пользователь хочет искать с арабским, если мы используем var_dump($q); exit();
Команды в поисковом действии, $q
переменная установлена на ØµØ¯Ø§Ø неизвестных символов, поэтому я не смог использовать это значение параметра в процедуре поиска.
Кто-нибудь может помочь? благодарю вас.
Я нашел решение для моей проблемы, как показано ниже:
1) сначала возникла проблема с локальной настройкой системы в моем ПК с ОС Windows, поэтому я изменил ее на одну из арабских стран.
2) во-вторых, была проблема с типом параметра IN в search_procedure, поэтому я изменил его на varchar (20).
Других решений пока нет …