-1

ストアド プロシージャコントローラ、およびモデルがあります。

プロシージャまたはモデルのどこでデータベース エラー チェック [行が返されない、テーブルに競合する主キーがある、無効な値が指定されているなど?] を行う必要がありますか? どこからユーザーにメッセージを表示する必要がありますか[更新成功、ステートメントを実行できませんでしたなど]?

より良い習慣は何ですか?

4

3 に答える 3

4

エラー チェックはモデル レイヤーで実行する必要があります。

具体的には、データマッパーまたはデータの抽象化を扱うその他の構造で。PDO を使用している場合、SQL エラーによって例外が発生します。これは、ストレージ抽象化のレベルで処理されます。これは、その時点で保存または設定していたドメイン オブジェクトにエラー状態を割り当てることによって行われます。

コントローラーは、まったく別のレイヤーであるプレゼンテーションレイヤーに存在します。モデル層によって処理されるドメイン ビジネス ロジックの内部の問題を認識してはなりません。それは抽象化の漏れにつながります。

ビューは、表示する情報を収集するとき、最初に使用するサービスにステータスを返すように要求する必要があります。サービスが既存のエラー状態についてビューに通知する場合、ビューはより詳細な情報を要求し、このエラーへの対応方法と、エラー状態の視覚化に使用するグループ テンプレートを決定します。

于 2012-08-30T10:35:20.830 に答える
1

はい、すべてのエラー メッセージと表示項目はビューで処理する必要があります。データベースのエラー チェックはモデルで実行できます。

于 2012-08-30T05:19:02.013 に答える
0

私の意見では、DBエラーチェックはモデルに入り、表示(すべて)は「ビュー」レイヤーに行きます。ここで、MVC フレームワークの作成に関する素敵な投稿を見つけることができます。

http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/

于 2012-08-30T05:14:51.420 に答える