【问题标题】:Laravel : key() expects parameter 1 to be array, integer givenLaravel:key() 期望参数 1 是数组,给定整数
【发布时间】:2020-12-30 09:39:19
【问题描述】:

我想在创建后表单中保存用户 ID,但显示此错误

key() 期望参数 1 是数组,给定整数

后控制器:

public function store(PoemsCreateRequest $request)
{
    $data = $request->all();
    $post = Post::create($data);
    if ($post && $post instanceof Post) {
        $tagList = $request->input('tags');
        $tags = collect($tagList)->mapToGroups(function (string $tag) {
            return Tag::firstOrCreate(['name' => $tag, 'author' => Auth::id()])->id;
        })->all();
        return redirect()->back();
    }

}

如何解决?

【问题讨论】:

  • 我们可以查看失败的哪一行的完整堆栈跟踪吗?

标签: laravel


【解决方案1】:

您传递给mapToGroups() 函数的闭包正在返回一个int,这是不正确的。它必须返回一个数组。

From the documentation:

mapToGroups 方法通过给定的回调对集合的项目进行分组。回调应该返回一个包含单个键/值对的关联数组,从而形成一个新的分组值集合

【讨论】:

    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2017-11-14
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 2021-05-07
    • 2021-01-13
    相关资源
    最近更新 更多