访问了一个类的静态方法后,无法使用类里面的visiable方法。
如下图所示,访问一个类的静态变量后phpstorm提示错误,
image.png
箭头所指的地方,提示not found ...
开始试了试,解决不了,便去看了tp5的手册,在数据访问和转换栏目下有描述all和find返回数据的区别:
使用find时可直接将对象实例转为数组
$user = User::find(1);
dump($user->visible(['id','name','email'])->toArray());
使用all时:
如果是数据集查询的话有两种情况,由于默认的数据集返回结果的类型是一个数组,
因此无法调用toArray方法,必须先转成数据集对象然后再使用toArray方法,
系统提供了一个collection助手函数实现数据集对象的转换,
$list = User::all();
if($list) {
$list = collection($list)->toArray();
}
我在看了这一条之后,将代码改成了如下所示:
image.png
如上图箭头所指,phpstorm不提示错误了
但是还有一个方法是将数据库配置文件的数据返回类型改成collection然后可以不用使用助手函数的方法来转换,此方法我将在实际应用中试一下。
网友评论