Помощники Symfony и база данных - PullRequest
1 голос
/ 03 мая 2011

Я использую Symfony 1.4.11 с доктриной.У меня есть помощник:

function filterwords($text){

    $filterWords=array ('some','filter','words');
     $filterCount = sizeof($filterWords);
        for($i=0; $i<$filterCount; $i++){
        $text = preg_replace('/\b'.$filterWords[$i].'\b/ie',"str_repeat('*',strlen('$0'))",$text);
                                         }
        return $text;
                               }
    }

Все отлично работает.Но я хочу сделать модуль, чтобы администратор мог добавлять слова для фильтрации из бэкэнда.Можно ли передать данные из базы данных в varaible $ filterWords У меня есть следующая схема:

Filter:
  actAs:
    Timestampable: ~
  connection: doctrine
  tableName: filter
  columns:
    word: {type: string(255), notnull: true}

Я могу сделать в помощнике что-то вроде этого и получить слово, что мне нужно:

 $record = Doctrine_Core::getTable('Filter')->getWordFilter();

 foreach ($record as $filter )

   {
 echo  $filter ->getWord();
    }

Но я не знаю, как реализовать это в моей функции ...

Извините за мой плохой английский.

Ответы [ 3 ]

1 голос
/ 03 мая 2011

Просто передайте $filterwords в качестве переменной:

function filterwords($text, $filterwords)
{
   //etc.
0 голосов
/ 04 мая 2011

Не знаю, правильно ли это, но это работа.

 function filterwords($text){
  $record = Doctrine_Core::getTable('Filter')->getWordFilter();//

   foreach ($record as $filter )
   {
        $filterWords[] =  $filter->getWord();
    }
         $filterCount = sizeof($filterWords);
        for($i=0; $i<$filterCount; $i++){
        $text = preg_replace('/\b'.$filterWords[$i].'\b/ie',"str_repeat('*',strlen('$0'))",$text);
                                         }
        return $text;
                               }
0 голосов
/ 03 мая 2011
field = the column name that contains a value you're searching by.

$record = Doctrine_Core::getTable('Words')->findOneByField($value);
$filterWords = $record->getWord();
...