1

私は vo/dao セットアップを継承しました (ただし、すべてのクラスのすべての DAO 関数を持つモデル クラスは 1 つしかありません) が、再帰で奇妙になっています。

すべてのユーザーには投稿があり、各投稿には動画を含めることができますが、動画にはユーザーがいて、投稿に動画が設定されていない場合もあります。

getPost は (部分的に) 次のようになります。

function getPostById($id) {
  $post->name = $row['name'];
  $post->video = $this->getVideoById($row['video_id']);
}

video にはユーザーを取得するための同様の機能があります。問題は、動画が投稿内に設定されていない場合 (id=0)、その getUser 関数が論理的にmysql_fetch_array() expects parameter 1 to be resource, boolean given. これで、他のオブジェクトを参照するすべてのコマンドに条件を付けることができましたが、このように V0 オブジェクトをリンクする際に潜在的に null 値を処理する他の方法はありますか?

4

1 に答える 1

1

の結果からカウントを取得する必要がありますgetUser。そのプロパティを評価し、値が 1 未満の場合は例外をスローします。

次に、コードがメソッド結果の依存関係に強く依存しているため、例外を処理します。

ただし、これには少しリファクタリングが必要になるため、回避しようとしていることがわかります。

于 2011-09-13T17:00:03.743 に答える