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

类似tp这样

Request::only(['id'=>0,'name'=>'']);
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

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

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

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

3年前 评论
颠倒的玉石

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

3年前 评论

不想试就看源代码……

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

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

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

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!