请问only方法可以批量赋值默认值吗

类似 tp 这样

Request::only(['id'=>0,'name'=>'']);
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

我觉得这种问题应该是试过了的吧,提问是想确认一下,同时看看有没有符合需求的解决方案。 我刚好也有这个需求,目前想到的方法是提前设置一个默认的数组,然后 only 获取之后再进行替换。

$default = [
    'id' => 0,
    'name' => '',
];
$params = $request->only(['id', 'name']);
$params = array_replace($default, $parmas);
3年前 评论
zxwen_zl 2年前
讨论数量: 8

这个呢,你实际试一下就知道了吧,没用过,但也没必要为你去试一下。

4年前 评论
颠倒的玉石

自信点,不可以。这个不是 tp

4年前 评论

不想试就看源代码……

4年前 评论
tu6ge-php 4年前
ederson520 3年前

我觉得这种问题应该是试过了的吧,提问是想确认一下,同时看看有没有符合需求的解决方案。 我刚好也有这个需求,目前想到的方法是提前设置一个默认的数组,然后 only 获取之后再进行替换。

$default = [
    'id' => 0,
    'name' => '',
];
$params = $request->only(['id', 'name']);
$params = array_replace($default, $parmas);
3年前 评论
zxwen_zl 2年前
//使用
$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;
    }
3年前 评论