Dcat Admin中内置了多种常用数据统计卡片,可以非常方便的与后端 API 交互。但是与后端API交互时的传参方法官方文档给出的示例代码中存在错误,导致我们按照官方文档的代码无法正确传参,本文就说明下正确的传参方式。
首先、要在数据统计卡片中定义构造方法并接受自定义参数。
// 保存自定义参数
protected $data = [];
// 构造方法参数必须设置默认值
public function __construct(array $data = [])
{
//官方示例代码错误
//$this->data = []; //正确的代码
$this->data = $data;
parent::__construct();
}
注意,官方示例代码就是这里错了,示例代码中使用的$this->data = [];
,给数据卡片的自定义参数赋值的是空数组,当然永远获取不到正确的参数了。实际要改成$this->data = $data;
,这样就可以正确的获取自定义参数了。
接下来、按照官方手册的说明,我们还需要在数据卡片中实现下面的方法。
namespace AppAdminMetricsExamples;
use DcatAdminWidgetsMetricsCard;
use IlluminateContractsSupportRenderable;
use IlluminateHttpRequest;
class TestChart extends Card
{
// 保存自定义参数
protected $data = [];
// 构造方法参数必须设置默认值
public function __construct(array $data = [])
{
$this->data = $data;
parent::__construct();
}
// 传递自定义参数到 handle 方法
public function parameters() : array
{
return $this->data;
}
// 处理请求
public function handle(Request $request)
{
// 获取外部传递的自定义参数
$url = $request->get('url');
}
//代码省略部分......
}
最后,在调用数据统计卡片时,加上要传递的参数即可。
use AppAdminChartsTestChart;
......
$chart = new TestChart(['url'=>"https://www.codesou.cn"]);
想要了解更多内容,请持续关注码农资源网,一起探索发现编程世界的无限可能!
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Dcat Admin 数据统计卡片传参实现方法
本站部分资源来源于网络,仅限用于学习和研究目的,请勿用于其他用途。
如有侵权请发送邮件至1943759704@qq.com删除
码农资源网 » Dcat Admin 数据统计卡片传参实现方法