最佳答案
我觉得这种问题应该是试过了的吧,提问是想确认一下,同时看看有没有符合需求的解决方案。 我刚好也有这个需求,目前想到的方法是提前设置一个默认的数组,然后 only 获取之后再进行替换。
$default = [
'id' => 0,
'name' => '',
];
$params = $request->only(['id', 'name']);
$params = array_replace($default, $parmas);
讨论数量:
我觉得这种问题应该是试过了的吧,提问是想确认一下,同时看看有没有符合需求的解决方案。 我刚好也有这个需求,目前想到的方法是提前设置一个默认的数组,然后 only 获取之后再进行替换。
$default = [
'id' => 0,
'name' => '',
];
$params = $request->only(['id', 'name']);
$params = array_replace($default, $parmas);
//使用
$data = $this->getData(['category_id'=>'100','plate']);
//基类控制器加入以下代码
/**
* 获取当前参数
* User: flowerhua
* @param array $params ['user_id'=>2, 'auth_id', 'name'=>'flowerhua']
* @return array
*/
public function getData($params = []) {
if (!is_array($params)) {
return [];
}
$data = request($params);
$arr = [];
foreach ($params as $key => &$value) {
if (is_numeric($key)) {
$arr[$value] = isset($data[$value]) ? $data[$value] : '';
} else {
$arr[$key] = isset($data[$key]) ? $data[$key]: $value;
}
}
return $arr;
}
推荐文章: