Я хотел бы знать, возможно ли использовать Doctrine для извлечения некоторых данных из таблицы, которая не является сущностью.
use Doctrine\DBAL\Driver\Connection;
$connection->fetchAll("SELECT ...");
Я пытался использовать пространство имен Connection. этот работает с моими сущностями, но не с таблицей, которую я хочу.
Этот код на самом деле работает, но я использую PDO для подключения к базе данных для выполнения запроса. Таким образом, запрос Ajax недостаточно быстр. И мой SQL запрос должен быть подготовлен во избежание нарушений безопасности.
Спасибо за вашу помощь
/**
* @Route("/api/search", name="map_api_search")
*/
public function search(Connection $connection, Request $request, ObjectManager $manager) : Response {
if($ajaxRequest = $request->getContent())
{
$requestContent = json_decode($ajaxRequest, true);
$content = $requestContent["content"];
$config = new \Doctrine\DBAL\Configuration();
$connectionParams = array(
'dbname' => 'smartport',
'user' => 'root',
'password' => '',
'host' => '127.0.0.1:3306',
'driver' => 'pdo_mysql',
);
$conn = \Doctrine\DBAL\DriverManager::getConnection($connectionParams, $config);
// Prepare the query
$sql = "SELECT nom, lon, lat, id FROM `chimie_stations2` WHERE nom LIKE '%$content%' AND aasqa = 'PACA'";
// Execute SQL query
$stmt = $conn->query($sql);
//Prepare an array to push all the results from the query
$results = array();
// Processing...
while($data = $stmt->fetch())
{
$results[] = $data;
}
if(($results)) {
return new JsonResponse([
'result' => true,
'results' => json_encode($results),
]);
} else {
return new JsonResponse([
'result' => false,
]);
}
}
}