【发布时间】:2014-10-24 01:51:58
【问题描述】:
我已经在我的 CodeIgniter 库文件夹中点燃了数据表库。
库中的一些代码
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();
}
然后我调用了model中的库
class Common_Model extends MY_Model{
function __construct(){
parent::__construct();
$this->load->library('Datatables.php');
}
然后我尝试调用库函数
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;
}
一切正常,除了 phpstorm 向我显示此错误:
Field Accessed via magic method
我尝试使用文档 cmets 删除此错误,但不知道该怎么做。 任何帮助将不胜感激。
【问题讨论】:
-
您必须在属于该类的 PHPDoc 注释中通过
@property声明它们。 -
有没有办法做到这一点,而无需触及声明类的文件?例如,如果该类是第三方库的一部分,并且我不想为该代码制作自定义补丁只是为了添加这些
@propertycmets? -
@Enno 您找到问题的答案了吗?我也遇到和你一样的问题。我能想到的唯一方法是创建一个扩展第三方类的类,然后添加
@property?但不确定它是否会起作用。 -
@markandrewkato 我认为是否可以扩展课程很大程度上取决于您的情况。就我而言,这是不可能的,老实说,我不再记得我做了什么。
-
@Enno 没问题。由于我无法向第三方添加文档并且我也不想扩展,所以我只是按照下面的答案。谢谢!
标签: php codeigniter phpstorm