首页 > 解决方案 > 无法在 Excel::load() 之外获取对象名称值

问题描述

我正在创建一个联系人目录。我有一个联系人组,里面有联系电话。我正在使用这个作曲家包"maatwebsite/excel": "~2.1.0"。我可以将联系人组保存在我的contact_groups表中,但我的代码无法获取新创建的联系人组的 ID。

这是我的代码。

$group = new ContactGroup();
$group->company_id = Auth::user()->company_id;
$group->group_name = $request['group_name'];
     if ($group->save()) {
        Excel::load($request->file('file')->getRealPath(), function ($reader) {
            foreach ($reader->toArray() as $key => $row) {
               $contact = new Contact();
               $contact->group_id = $group->id;
               $contact->company_id = Auth::user()->company_id;
               $contact->contact_name = $row['contact_name'];
               $contact->contact_number = $row['contact_number'];
               $contact->save();
             }
        });
        Session::flash('success','New contact group has been created!');
        return back();
     }

我收到一条错误消息Undefined variable: group

它指向这条线$contact->group_id = $group->id;

多谢你们!

标签: phplaravelmaatwebsite-excel

解决方案


您必须使用关键字$group在匿名函数内部传递。use

function ($reader) use ($group) {.

阅读更多


推荐阅读