Grammar::parameterize() 必须是数组类型

2024-01-15

我收到这个错误

传递给 Illuminate\Database\Grammar::parameterize() 的参数 1 必须是数组类型,给定字符串,

当我尝试添加时array[]在我的视图中使用选择表单。但当我删除它时,我没有收到任何错误。我只是想在我的选择列表中输入多个值。我需要使用吗foreach为了这?

View

<div class = "form-group {{ $errors->has('approver') ? ' has-error' : '' }}">

    <label for = "approver" class = "control-label">Approver:</label>

    <select name = "approver[]" multiple class = "form-control select2-multi">

        @foreach ($approver as $list)
            <option value = "{{ $list->id }}">{{ $list->username }}</option>
        @endforeach

    </select>

    @if ($errors->has('approver'))
        <span class = "help-block">{{ $errors->first('approver') }}</span>
    @endif

</div>

控制器

public function getDocuments()
{
   $approver = DB::table('users')->where('id', '!=', Auth::id())->get();

   return view ('document.create')->with('approver', $approver);
}

public function postDocuments(Request $request)
{

    $this->validate($request,
    [
        'title' => 'required|regex:/(^[A-Za-z0-9 ]+$)+/|max:255',
        'content' => 'required',
        'category' => 'required',
        'recipient' => 'required',
        'approver' => 'required',
    ]);     


    $document = new Document();
    $approve = new Approve();
    $user = Auth::user();
                                //Request in the form
    $document->title = $request->title;
    $document->content = $request->content;
    $document->category_id = $request->category;
    $approve->approver_id = $request->approver;

    $approve->save();

    $document->save();

    $document->sentToApprovers()->sync([$approve->id],false);

}

Update

我死了并倾倒$approver变量并给出一个值数组。

也死掉并倾倒$request正如你在这里看到的,我输入了 id4 and 5在我的选择列表中。


好的,您的问题是您尝试将数组保存为奇异值,而您需要迭代批准者。

将控制器逻辑更改为:

foreach ($request->approver as $approver) {
    $approve              = new Approve();
    $approve->approver_id = $approver;
    $approve->save();

    $document->sentToApprovers()->sync([$approve->id],false);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Grammar::parameterize() 必须是数组类型 的相关文章

随机推荐