基于CSV中单元格的值不能正常工作的雄辩搜索

时间:2016-08-19 18:13:59

标签: laravel csv laravel-5 eloquent

我正在尝试使用从以下公司表中检索的值为新用户(company_id)填充字段:

/**
 * Import a CSV file
 * @param File|array $csv File Data
 * @param $tenant
 * @return mixed
 */
public function importCSV(array $csv)
{
    foreach ($csv as $line => $cell)
    {
        try
        {
             (new User)->create([
                'company_id' => self::getCompanyFromId($cell[3]),
                'name' => $cell[5] . " " . $cell[6],
                'address' => $cell[15],
                'zip' => $cell[18],
                'remote_id' => $cell[0],
            ]);
        } catch (Exception $e)
        {
            Log::info("Failed on Importing CSV - Line $line - " . $e->getMessage());
        }
        catch (Exception $e)
        {
            Log::info("Failed on Importing CSV - Line $line - " . $e->getMessage());

        }
    }
}

/**
 * Get company ID from remote ID
 * @param $id
 * @return int
 */
static public function getCompanyFromId($id)
{
    $company = Company::whereRemoteId($id)->first();

    if ($company){ 
        return $company->id;
    }
    else {
        Log::info("No company with ID " . $id);
        return 0;
    }
}

这永远不会找到一家公司,它应该是。我从csv访问正确的单元格($ cell [3]是正在对公司表中的remote_id字段进行检查的标识ID),并且编写一个从命令行比较两者的查询正在产生所需的结果

下面的代码中有什么不正确的,为什么它不起作用?

1 个答案:

答案 0 :(得分:0)

最终公司表因某些原因无法访问,所以我改变了帮助方法,如下所示:

static public function getCompanyFromRemoteId($id)
{
    $company = DB::table('companies')->whereRemoteId($id)->first();

    if ($company){ 
        return $company->id;
    }
    else {
        return 0;
    }
}

立即行动。