Project

General

Profile

Bug(バグ) #3492

PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している

Added by Yuya Watanabe over 5 years ago. Updated over 2 years ago.

Status:
Won't fix(対応せず)
Priority:
Normal(通常)
Target version:
Start date:
2013-11-20
Due date:
% Done:

0%

3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Yes (はい)

Description

概要

PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している

下記 73 行目では $snsConfig (SnsConfig クラス)の save() の返り値を用いているが,これは opDoctrineRecord クラスの save() となり,これは return を使ってないので void となる.

apps/pc_backend/modules/design/lib/PickHomeLayoutForm.class.php
 56 
 57   public function save()
 58   {
...
 64     $snsConfig = Doctrine::getTable('SnsConfig')->retrieveByName($this->layoutName);
 65     if (!$snsConfig)
 66     {
 67       $snsConfig = new SnsConfig();
 68       $snsConfig->setName($this->layoutName);
 69     }
 70     $value = $this->choices[$this->values['layout']];
 71     $snsConfig->setValue($value);
 72 
 73     return (bool)$snsConfig->save();
 74   }

lib/util/opDoctrineRecord.class.php
 56   public function save(Doctrine_Connection $conn = null)
 57   {
 58     if (is_null($conn))
 59     {
 60       $conn = opDoctrineQuery::chooseConnection(true);
 61     }
 62 
 63     parent::save($conn);
 64   }

Related issues

Related to OpenPNE 3 - Backport(バックポート) #3865: PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している Fixed(完了) 2015-11-09
Related to OpenPNE 3 - Backport(バックポート) #3866: PickHomeLayoutForm クラスで返り値が void となるメソッドを返り値に指定している Fixed(完了) 2015-11-09

History

#1 Updated by Akihiro KOBAYASHI almost 5 years ago

  • Status changed from New(新規) to Accepted(着手)
  • Assignee set to Akihiro KOBAYASHI
  • 3.8 で発生するか changed from Unknown (未調査) to Yes (はい)

#2 Updated by Akihiro KOBAYASHI almost 5 years ago

  • Status changed from Accepted(着手) to Pending Review(レビュー待ち)
  • % Done changed from 0 to 50

プルリクエストしました
https://github.com/openpne/OpenPNE3/pull/197

apps/pc_backend/modules/design/lib/PickHomeLayoutForm.class.php内
$snsConfig->save();はvoidなのでreturn (bool)$snsConfig->save();を$snsConfig->save()に変更しました。

#3 Updated by Akihiro KOBAYASHI almost 5 years ago

  • Target version set to OpenPNE 3.9.0-old

プルリクエスト先変更のため
https://github.com/openpne/OpenPNE3/pull/197 を一旦クローズ、
新たに https://github.com/openpne/OpenPNE3/pull/226 を追加

#4 Updated by kaoru n about 4 years ago

  • Assignee deleted (Akihiro KOBAYASHI)

#5 Updated by isao sano almost 4 years ago

#6 Updated by isao sano almost 4 years ago

#7 Updated by Rimpei Ogawa over 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Rejected(差し戻し)

返り値を void とするなら(修正前も void だったわけですが)、
PickHomeLayoutForm::save() の返り値を使用しようとしているコードも修正する必要があります。

以下の部分

# apps/pc_backend/modules/design/actions/actions.class.php

    $this->form = new PickHomeLayoutForm(array(), $option);

    if ($request->isMethod(sfRequest::POST))
    {
      $this->form->bind($request->getParameter('pick_home_layout'));
      $this->redirectIf($this->form->save(), 'design/layout?type='.$type);
    }

#8 Updated by Chiharu Nakajima over 3 years ago

  • Status changed from Rejected(差し戻し) to Pending Review(レビュー待ち)
  • Assignee set to Chiharu Nakajima

プルリクエストしました。
https://github.com/openpne/OpenPNE3/pull/289

○修正内容について
save()が正常終了した場合にtrueを返すようにすることで、下記コードのredirectIfの結果、リダイレクトする用に修正(save()でfalseが戻り値となった場合は修正前と同じくリダイレクトしない)。

# apps/pc_backend/modules/design/actions/actions.class.php

    $this->form = new PickHomeLayoutForm(array(), $option);

    if ($request->isMethod(sfRequest::POST))
    {
      $this->form->bind($request->getParameter('pick_home_layout'));
      $this->redirectIf($this->form->save(), 'design/layout?type='.$type);
    }

#9 Updated by Rimpei Ogawa over 3 years ago

  • Status changed from Pending Review(レビュー待ち) to Pending Testing(テスト待ち)
  • % Done changed from 50 to 70

#11 Updated by kaoru n over 2 years ago

  • Status changed from Pending Testing(テスト待ち) to Won't fix(対応せず)
  • Target version changed from OpenPNE 3.9.0-old to OpenPNE 3.9.0
  • % Done changed from 70 to 0

OpenPNE 3.8.18 にて対応済みであったため、対応せずとします。

Also available in: Atom PDF