Я пишу Tab для prestashop, в котором перечислены клиенты со страной происхождения. Пока все в порядке, но я бы хотел отфильтровать запрос или таблицу по странам, поэтому я хотел бы добавить что-то вроде: WHERE iso_code = 'IT' Очевидно, престашоп не позволит мне, как я мог это сделать? Это мой код:Prestashop Admin Tab - где clausole не работает
<?php
include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php');
class AdminCustomersCountries extends AdminTab
{
public function __construct()
{
$this->table = 'customer';
$this->className = 'Customer';
$this->lang = false;
$this->edit = false;
$this->view = true;
$this->delete = false;
$this->deleted = false;
$this->requiredDatabase = true;
$this->_select = '(SELECT cy.iso_code FROM ps_address AS addr, ps_country AS cy WHERE addr.id_customer=a.id_customer AND addr.id_country=cy.id_country) AS iso_code';
$this->fieldsDisplay = array(
'id_customer' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
'lastname' => array('title' => $this->l('Last Name'), 'width' => 80),
'firstname' => array('title' => $this->l('First name'), 'width' => 60),
'email' => array('title' => $this->l('E-mail address'), 'width' => 120, 'maxlength' => 19),
'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false),
'newsletter' => array('title' => $this->l('News.'), 'width' => 25, 'align' => 'center', 'type' => 'bool', 'callback' => 'printNewsIcon', 'orderby' => false),
'iso_code' => array('title' => "Nazione", 'width' => 60, 'orderby'=>false, 'search'=>false));
$this->optionTitle = "Prova";
parent::__construct();
}
public function postProcess()
{
// This function is executed when the Submit button is clicked
// Use it to store the value of text fields in the database
parent::postProcess();
}
public function displayForm($token=NULL)
{
// This function can be used to create a form with text fields
}
}
?>
Здесь, однако, я пытаюсь добавить ИНЕКЕ, без результатов:
<?php
include_once(PS_ADMIN_DIR.'/../classes/AdminTab.php');
class AdminCustomersCountries extends AdminTab
{
public function __construct()
{
$this->table = 'customer';
$this->className = 'Customer';
$this->lang = false;
$this->edit = false;
$this->view = true;
$this->delete = false;
$this->deleted = false;
$this->requiredDatabase = true;
$this->_select = '(SELECT cy.iso_code FROM ps_address AS addr, ps_country AS cy WHERE addr.id_customer=a.id_customer AND addr.id_country=cy.id_country AND cy.iso_code='IT') AS iso_code';
$this->fieldsDisplay = array(
'id_customer' => array('title' => $this->l('ID'), 'align' => 'center', 'width' => 25),
'lastname' => array('title' => $this->l('Last Name'), 'width' => 80),
'firstname' => array('title' => $this->l('First name'), 'width' => 60),
'email' => array('title' => $this->l('E-mail address'), 'width' => 120, 'maxlength' => 19),
'active' => array('title' => $this->l('Enabled'), 'width' => 25, 'align' => 'center', 'active' => 'status', 'type' => 'bool', 'orderby' => false),
'newsletter' => array('title' => $this->l('News.'), 'width' => 25, 'align' => 'center', 'type' => 'bool', 'callback' => 'printNewsIcon', 'orderby' => false),
'iso_code' => array('title' => "Nazione", 'width' => 60, 'orderby'=>false, 'search'=>false));
$this->optionTitle = "Prova";
parent::__construct();
}
public function postProcess()
{
// This function is executed when the Submit button is clicked
// Use it to store the value of text fields in the database
parent::postProcess();
}
public function displayForm($token=NULL)
{
// This function can be used to create a form with text fields
}
}
?>
Извините, но это была ошибка при записи, когда я редактировал второй код. Однако я пробовал с cy.iso_code = \ 'IT \', и он не работает. – user2443268
Хм ... Может быть, это 'SELECT cy.iso_code FROM ps_address'. Насколько я могу судить, вы запрашиваете iso_code из неправильной таблицы. не – Aram
Ммма нет, система показать мне всю таблицу со всеми данными (в том числе iso_code), мне нужен только фильтр с ИНЕКЕМ или с помощью функции Prestashop – user2443268