Один из способов сделать это - использовать Newtonsoft.Json
В своем коде Razor включите @using Newtonsoft.Json
.
А затем:
<label id="intLabel" data-int-array="@(JsonConvert.SerializeObject(ViewBag.t))">My label</label>
Это будет производить:
<label id="intLabel" data-int-array="[1,2,3,4]">My label</label>
В вашем необходимом выводе вы запросили строковый массив - в этом случае вам придется определять «t» как строковый массив в коде вместо массива int.
Надеюсь, это работает для вас. Если да, отметьте это как ответ.
Доктрина не отправляет «реальный запрос SQL» на сервер базы данных: он на самом деле использует подготовленные операторы, что означает:
$ Query-> getsql ()
) $ Query-> getParameters ()
) Это означает, что на стороне PHP никогда нельзя никогда нельзя «реальный» SQL-запрос на PHP - поэтому доктрина не может их отображать.
Измененные @dsamblas функционируют для работы, когда параметры являются строками даты как это '2019-01-01'. Также - все, что записал dsamblas, но замена startQuery с этим или видит различия и добавляет мой код. (в случае, если он изменил что-то в своей функции, и моя версия не имеет модификаций).
public function startQuery($sql, array $params = null, array $types = null)
{
if($this->isLoggable($sql)){
if(!empty($params)){
foreach ($params as $key=>$param) {
try {
$type=Type::getType($types[$key]);
$value=$type->convertToDatabaseValue($param,$this->dbPlatform);
} catch (Exception $e) {
$value = $param; // added this when getType throws exception
}
$sql = join(var_export($value, true), explode('?', $sql, 2));
}
}
echo $sql . " ;".PHP_EOL;
}
}
не протестировал много.
Нет другого реального запроса, вот как работают готовые заявления. Значения связаны на сервере базы данных, а не в слое приложений.
Увидеть мой ответ на этот вопрос: в PHP с PDO, как проверить окончательный параметризованный запрос SQL?
(повторяется здесь для удобства :)
Использование подготовленных утверждений с параметризованными значениями не просто другого Способ динамически создать строку SQL. Вы создаете подготовленную оператор в базе данных, а затем отправьте только значения параметров.
Так что, вероятно, отправлено в базу данных, будет готовиться
...
, затемУстановите ...
И, наконец,Выполнить ....
Вы Не сможет получить некоторую строку SQL, например
, выберите * из ...
, даже если он будет производить эквивалентные результаты, потому что такого запроса не было фактически отправлено в базу данных.