プロジェクト

全般

プロフィール

Backport(バックポート) #3725

opMemberProfileSearchForm に 未定義の変数が使用されている

isao sanoほぼ4年前に追加. ほぼ4年前に更新.

ステータス:
New(新規)
優先度:
Normal(通常)
担当者:
対象バージョン:
開始日:
2014-04-08
期日:
進捗率:

0%


説明

Overview (現象)

opMemberProfileSearchFormのconfigure()をカスタマイズし、
nameのValidatorをopValidatorSearchQueryStringから、sfValidatorPassなどValidator::doClean()の戻り値が配列ではないものを指定する。
(44行目)

    $validators += array('name' => new opValidatorSearchQueryString(array('required' => false)));


    $validators += array('name' => new sfValidatorPass());

上記カスタマイズを施したformを利用して検索を行うとnameでの絞り込み検索が機能しなくなる。
また、以下の様なNoticeエラーが出る。

PHP Notice:  Undefined variable: values in /XXX/lib/form/searchForm/opMemberProfileSearchForm.class.php on line 104

Causes (原因)

opMemberProfileSearchForm::addNameColumnQuery()において、未定義の $values が利用されているため。

  protected function addNameColumnQuery(Doctrine_Query $query, $value)
  {
    if (!empty($value))
    {
      if (is_array($value))
      {
        foreach ($value as $v)
        {
          $query->andWhereLike('name', $v);
        }
      }
      else
      {
        if (!empty($value))
        {
          $query->andWhereLike('name', $values); // ← 未定義
        }
      }
    }
  }

h3. Way to fix (修正内容)

$values を正しい変数 $value に変更する

  protected function addNameColumnQuery(Doctrine_Query $query, $value)
  {
    if (!empty($value))
    {
      if (is_array($value))
      {
        foreach ($value as $v)
        {
          $query->andWhereLike('name', $v);
        }
      }
      else
      {
        if (!empty($value))
        {
          $query->andWhereLike('name', $value); // ← $value に修正
        }
      }
    }
  }

関連するチケット

コピー元 OpenPNE 3 - Bug(バグ) #3587: opMemberProfileSearchForm に 未定義の変数が使用されている New(新規) 2014-04-08

履歴

#1 isao sanoほぼ4年前に更新

  • コピー元 Bug(バグ) #3587: opMemberProfileSearchForm に 未定義の変数が使用されている を追加

#2 isao sanoほぼ4年前に更新

  • 担当者isao sano にセット

#3 isao sanoほぼ4年前に更新

  • 対象バージョンOpenPNE 3.6.17 から OpenPNE 3.6.x に変更

他の形式にエクスポート: Atom PDF