【问题标题】:Laravel validate unique with postgresql error array_map(): Argument #2 should be an arrayLaravel validate unique with postgresql error array_map(): Argument #2 should be an array
【发布时间】:2018-12-19 21:55:25
【问题描述】:

控制器:

public function store(CatalogRequest $request, $collectionId)
    {
        $input = $request->all();
        $input['collection_id'] = $collectionId;
        $model = $this->model->create($input);

        return redirect(cms_route('catalog.edit', [$collectionId, $model->id]))
            ->with('alert', fill_data('success', trans('general.created')));
    }

请求:

public function rules()
    {
        $id = $this->route('catalog');
        return [
            'title' => 'required|min:2',
            'slug' => 'required|min:2|unique:catalog,slug,'.$id,
        ];
    }

错误:

array_map(): Argument #2 should be an array

in ValidationRuleParser.php line 89

如果我删除此代码“unique:catalog,slug'.$id”,那么它就可以工作了

【问题讨论】:

    标签: laravel postgresql validation unique


    【解决方案1】:

    这一行将整个模型绑定到路由:

    $this->route('catalog');
    

    所以,既然你有模型,你就可以从中获取 id:

    $this->route('catalog')->id;
    

    【讨论】:

    • 没关系,如果我写这个 required|min:2|unique:catalog,slug,1 它会犯同样的错误
    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2022-11-20
    • 1970-01-01
    • 2022-10-05
    • 2023-01-26
    • 2019-08-31
    相关资源
    最近更新 更多