2016-11-17 5 views
-1

У меня есть следующий код в моем шаблоне веточку для управления базой данных:

{% 
    $tablename = $app['config']->get('general/database/prefix') . 'entries'; 
    $query = "UPDATE $tablename SET $views = ? WHERE id = ?"; 
    $views = record.views + 1; 
    $stmt = $app['db']->prepare($query); 
    $stmt->bindValue(1, $views); 
    $stmt->bindValue(2, record.id); 
    $res = $stmt->execute(); 
%} 

я получаю следующие ошибки, когда я загрузить шаблон в браузере:

Twig_Error_Syntax 
Unexpected character "$" in "record.twig" at line 18. 

Почему я получаю эту ошибку ??

+1

, какая линия является 18-й линии? –

+0

@ KanishkaPanamaldeniya 1-й one $ $ tablename = $ app ['config'] -> get ('general/database/prefix'). 'записи'; '. –

+0

Не помещайте вызовы базы данных в шаблон. – bcmcfc

ответ

4

Вы не можете писать PHP-код в шаблоне Twig. Тег {% ...%} позволяет выполнить код Twig, а не код PHP. Во всяком случае, вы не должны получать доступ к своей базе данных изнутри шаблона, это так НЕПРАВИЛЬНО.

Если вам действительно нужно что-то сделать, напишите Twig Extension и назовите его из вашего тега {% ...%}.

+0

этот код предназначен для тестирования, и позже он будет превращен в расширение! так как именно я теперь выполняю вышеуказанный код? –

+1

Вы пытаетесь взять ярлык, которого не существует. Если вы хотите создать расширение, вам нужно сначала установить расширение bare-bones, а затем разработать его в этом расширении. Twig предназначен для того, чтобы _not_ позволить любому PHP в шаблонах – jadwigo

+0

@jadwigo спасибо приятелю! –

2

Если вы хотите обновить записи в базе данных, вам нужно будет создать собственное расширение, которое обрабатывает твиг-тег, чтобы инициировать это.

советы и информацию, чтобы вы начали доступны в документации болтом: https://docs.bolt.cm/3.2/extensions/basics/creating

Смежные вопросы