मैं सिम्फनी 2 (और ओओपी) सीख रहा हूं और एक सेवा बनाना चाहता हूं जो पूरे ऐप में उपलब्ध हो। यह सेवा एक मूल्य foo लेती है, इसे डेटाबेस तालिका के विरुद्ध जांचती है, और एक मान बार देता है।आप सिम्फनी 2 सर्विस क्लास में डॉक्टरेट डीबीएएल तक कैसे पहुंचते हैं?
मैं एक छोटे से वर्ग है
namespace Acme\TestBundle\Toolbox;
class StringToolbox
{
public function lookupSomething($foo)
{
$conn = $this->get('database_connection');
$sql = "SELECT bar FROM bar_list WHERE foo = :foo";
$stmt = $conn->prepare($sql);
$stmt->bindValue("foo", $foo);
$stmt->execute();
return $bar;
}
}
मेरी सेटिंग्स हैं:
services:
toolbox:
class: Acme\TestBundle\Toolbox
arguments: [@database_connection]
लेकिन यह एक त्रुटि कह रही है कि प्राप्त() विधि अपरिभाषित है फेंकता है। मैं अटक गया हूँ - मैं सेवा में डीबीएएल का उपयोग कैसे कर सकता हूं? धन्यवाद!
यह एक बहुत मदद करता है! सिम्फनी दस्तावेज़ बहुत अच्छे हैं लेकिन वे पूर्ण ओओपी ज्ञान मानते हैं, और मेरे पास कुछ अंतराल हैं। धन्यवाद! – Acyra
किसी कारण से यह अब काम नहीं करता है, मुझे एक अलग तर्क पारित करना होगा: तर्क: [@डेटा_कनेक्शन] – Acyra
'@ doctrine.dbal.connection' सेवा एक सार है। '@ Doctrine.dbal।% Connection_name% _connection' का उपयोग करने का प्रयास करें, जहां'% connection_name% 'प्लेसहोल्डर उस कनेक्शन का नाम है जिसे आप इंजेक्ट करना चाहते हैं। –