我在我的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();
}
然后我在模型中调用了库
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
我尝试使用文档注释删除此错误,但无法弄清楚我该怎么做... 任何帮助将不胜感激。
答案 0 :(得分:81)
如果您想在没有文档评论的情况下删除此内容,可以取消选中通过魔术方法访问某个字段的通知,这可以在
中找到项目设置> 检查> PHP > 未定义> 未定义字段
答案 1 :(得分:30)
您必须在PHPDoc评论中通过
@property
声明它们 属于那个班级。
/**
* @property string $bar
*/
class Foo {
public function __get($name) {
if ($name == 'bar') {
return 'bar';
}
return NULL;
}
}
来自Dmitry Dulepov的文章"Quick tip: magic methods and PhpStorm"的片段。
答案 2 :(得分:1)
如果您不想禁用整个项目的检查,并且不能修改类文件以添加@property
标记,这就是在警告的使用位置禁止显示警告的方法:
/** @noinspection PhpUndefinedFieldInspection */
只需在使用魔术场的行之前将其添加到新行中即可。