1

私は次のコードを持っていますが、連鎖して動作したくないようです。

 $this->view->setData($class_vars);
 $this->view->render('addview'); 

上記は機能し、正常に動作しますが、次のことをしようとすると:

 $this->view->setData($class_vars)->render('addview');

次のエラーが表示されます。

致命的なエラー: 非オブジェクトのメンバー関数 render() への呼び出し....

しかし、奇妙なことは、私がそれを別の方法で呼び出すときです:

 $this->view->render('addview')->setData($class_vars);

それは実行されますが、実際のビューの var を設定するため、最初に setData を実行する必要があります。両方のメソッドは公開されていますか?

ありがとうございます

4

1 に答える 1

5

ビューオブジェクトを返しますかsetData()(つまり、return $this;行がありますか)?そうでない場合...このように機能させたい場合は、そうする必要があります。

さらに参照するために。この手法は「流れるようなインターフェイス」と呼ばれ、ここで説明されています: http://www.martinfowler.com/bliki/FluentInterface.html

于 2013-02-27T21:48:41.087 に答える