Tôi đang học Symfony2 (và OOP) và muốn tạo một dịch vụ có sẵn trong ứng dụng của tôi. Dịch vụ này lấy một giá trị foo, kiểm tra nó dựa vào một bảng cơ sở dữ liệu và trả về một thanh giá trị.Làm thế nào để bạn truy cập Doctrine DBAL trong một lớp dịch vụ Symfony2?
Tôi có một chút lớp
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;
}
}
thiết lập của tôi là:
services:
toolbox:
class: Acme\TestBundle\Toolbox
arguments: [@database_connection]
Nhưng nó ném một lỗi nói rằng method get() là không xác định. Tôi bị kẹt-- làm cách nào tôi có thể sử dụng DBAL trong dịch vụ? Cảm ơn!
này giúp ích rất nhiều! Các tài liệu của Symfony rất tuyệt vời nhưng chúng cho rằng toàn bộ kiến thức về OOP và tôi có một số khoảng trống. Cảm ơn! – Acyra
Vì một số lý do này không còn hoạt động nữa, tôi phải chuyển một đối số khác: các đối số: [@database_connection] – Acyra
Dịch vụ '@ doctrine.dbal.connection' là một trừu tượng. Hãy thử sử dụng '@ doctrine.dbal.% Connection_name% _connection' trong đó'% connection_name% 'giữ chỗ tên của kết nối mà bạn muốn tiêm. –