質問: $db->loadobject(); return $this->_data; ビュークラスの$this->_dataを調べて、0レコードが返されるかどうかを確認できますが、特定のデータベースエラーメッセージを表示したり、ビュークラスにエラーメッセージを返してエラーを表示したりするにはどうすればよいですか?したがって、これらは、2.5でデータベースクエリを実行しているときに開発者がエラーを表示する最も一般的な方法です。
回答: @valentindespaの回答とほとんど同じですが、2つをマージして2.5と3.xで機能するものに結合します。ページ全体のエラーメッセージを表示するのではなく、falseを返し、ページの上部にエラーメッセージを挿入します。それがあなたが求めているものであることを願っています$db = jfactory::getdbo(); $query = $db->getquery(true); $query->select('x') // this is specially added to throw an sql error. ->from('#__users'); $db->setquery($query); if(!jerror::$legacy) { try { // if it fails, it will throw a runtimeexception $result = $db->loadresult(); } catch (runtimeexception $e) { jfactory::getapplication()->enqueuemessage($e->getmessage()); return false; } } else { $result = $db->loadresult(); // check for a database error. if ($db->geterrornum()) { jfactory::getapplication()->enqueuemessage($db->geterrormsg()); return false; } } jerrorレガシースイッチは、2.5ではjerrorを使用する場合はfalse、3.xでは例外を使用する場合はtrueでした。ここで私のモジュールの1つでこれを使用した完全な例を見ることができます https://github.com/joomjunk/shoutbox/blob/development/mod_shoutbox/helper.php#l