У меня есть проблема с передачей и циклированием данных с Jade Template Engine. Я пытался реализовать Jade с Code Igniter (PHP framework версии 3), конечно, он отлично работал, я могу расширить макет, создать файл с jade, используя синтаксис jade. К сожалению, я не знаю, как передать данные, которые я получил из базы данных, в jade view. Более серьезно я действительно не знаю, как закодировать данные как json с Jade.
Я пробовал с кодом ниже, но он не работал.
PHP-код
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
//https://github.com/ci-jade/ci-jade
class Welcome extends CI_Controller {
use Jade;
public function index()
{
$this->settings([
'cache' => TRUE
]);
$this->view('myview', [
'title' => 'My Jade View',
'authors' => array(json_encode($this->user_model()->result()))
]);
}
public function user_model()
{
return $this->db->get('user');
}
}
Джейд: myview
extends layout
block script
script(type='text/javascript')
document.write('Hello M');
block content
#{authors}
h1 Hello I am using jade
each user in authors
li=user.user_name
Вы видите, что ошибок не было, а также нет данных.
Глядя на документ ci-jade (я предполагаю, что тот, который вы используете), похоже, что вы реализуете его неправильно. Документация показывает, что вы должны называть $this->load->library('jade')
для ее использования (это относится ко всем библиотекам кодировщиков). Вы также должны вызвать $this->load->vars()
для передачи переменных в представления. После загрузки библиотеки вы сможете использовать ее методы, вызвав $this->jade->...()
.
Для получения дополнительной информации об использовании библиотек codeigniter ознакомьтесь с этим.