2009-04-25 8 views
4

私は、各ページ要求の開始時にデータベースに接続する必要がある簡単なMagentoモジュールを構築しようとしています。すべてのテーブルにアクセス可能である必要があります。私はそれをする方法を理解しようとしている私の髪を引き出しています。私が知ることができる最高ののは、私のモジュールの​​3210ファイルにこれを設定する必要があるということでしたが、そのコマンドがどのように使用されているのか正確には分かりませんでした。Magentoでデータベースに接続する方法は?

誰か私を案内したり、これを達成する方法を教えてもらえますか?そうでない場合は、手動でデータベースに接続するカスタムconfig.phpファイルを含めることは賢明ではありませんか?

+0

クリックしてアップデートを持っている、あなたはそれが仕事を得るために管理するのですか?私はあなたの質問にお答えしたのと同じ状況にいるので、あなたの解決策を聞いて欲しいです。 –

答えて

15

リソース・モデルまたはエンティティーを使用しようとしていますか?ここでは、生のSQLを使用してテーブルをクエリする方法がありますが、tablenameを知る必要があります。

$w = Mage::getSingleton('core/resource')->getConnection('core_write'); 
$result = $w->query('select entity_id from catalog_product_entity'); 

if (!$result) { 
    return false; 
} 

$row = $result->fetch(PDO::FETCH_ASSOC); 
if (!$row) { 
    return false; 
} 

あなたは私が私のカスタムモジュールのための第二の方法を使用して、それが私のために罰金を働いた、この答えは役立ちます:)

+0

そのraw sqlメソッドを使用するとエラーが発生します。私は基本的にコントローラからのdbに接続しようとしています。それは許されますか? –

+0

私は、コントローラから直接dbにアクセスしようとしていません。あなたは、生のSQLメソッドを持つ関数を持つブロックを作成しようとすることができます。 コントローラのindexAction()メソッドからその関数にアクセスできるはずです。 コントローラーのdispatch()、preDispatch()、およびpostDispatch()メソッドを調べることもできます。私は残念ながらそれらに精通していません。 –

+1

リック、IMプログラムやMSNがありますか?少しお会いできますか?私は答えを見つけることができなかったいくつかの質問がある、私は本当にそれらのいくつかの助けをしたいと思います –

0
を願っています

$products = Mage::getModel('catalog/product')->getCollection(); 

$products->addAttributeToFilter('entity_id', array('in' => array(1,2))); 

$products->addAttributeToSelect('*'); 
$products->load(); 

foreach ($products as $_prod) { 
    var_dump($_prod->getData()); 
} 

を使用することができ、すべてのモデルにしよう

addAttributeToFilterを持たないオブジェクトはどうですか?私は何時間も、その名前でロールオブジェクトをロードしようとしていましたが、何も動作しません。唯一可能な方法は、それが不可能な文字列値を使用してフィルタリングすることができMage_Admin_Model_Mysql4_Role::loadでunexplicable

if (!intval($value) && is_string($value)) { 
    $field = 'role_id'; 
} 

のために完璧に動作していない場合でしょう負荷、です。

MagentoのはRube Goldbergアーキテクチャ...

関連する問題