J'ai allumé la bibliothèque de tables de données dans mon dossier de bibliothèque CodeIgniter.
Du code de la bibliothèque
class Datatables
{
/**
* Global container variables for chained argument results
*
*/
protected $ci;
protected $table;
protected $distinct;
protected $group_by;
protected $select = array();
protected $joins = array();
protected $columns = array();
protected $where = array();
protected $filter = array();
protected $add_columns = array();
protected $edit_columns = array();
protected $unset_columns = array();
/**
* Copies an instance of CI
*/
public function __construct()
{
$this->ci =& get_instance();
}
Ensuite, j'ai appelé la bibliothèque en modèle
class Common_Model extends MY_Model{
function __construct(){
parent::__construct();
$this->load->library('Datatables.php');
}
alors j'ai essayé d'appeler les fonctions de la bibliothèque
function select_fields_joined_DT($data, $PTable, $joins = '', $where = '', $addColumn = '',$unsetColumn='')
{
/**
*
*/
$this->datatables->select($data);
if ($unsetColumn != '') {
unset_column($unsetColumn);
}
$this->datatables->from($PTable);
if ($joins != '') {
foreach ($joins as $k => $v) {
//$this->datatables->join($v['table'], $v['condition'], $v['type']);
}
}
if ($addColumn != '') {
$this->datatables->add_column("Actions", $addColumn);
}
$result = $this->datatables->generate();
return $result;
}
et tout fonctionne bien, sauf que le phpstorm me montre cette erreur:
Field Accessed via magic method
J'ai essayé de supprimer cette erreur avec des commentaires sur le document, mais je n'arrive pas à comprendre comment puis-je le faire .. toute aide sera appréciée.
Si vous souhaitez supprimer cela sans commentaires de document, vous pouvez décocher Notifier l'accès à un champ via la méthode magique qui se trouve dans
Paramètres du projet> Inspections> PHP > Non défini> Champ non défini
Comme mentionné par LazyOne dans les commentaires de la question:
Vous devez les déclarer via
@property
dans le commentaire PHPDoc qui appartient à cette classe.
/**
* @property string $bar
*/
class Foo {
public function __get($name) {
if ($name == 'bar') {
return 'bar';
}
return NULL;
}
}
Extrait de l'article de Dmitry Dulepov "Astuce rapide: méthodes magiques et PhpStorm" .