我正在尝试使用从以下公司表中检索的值为新用户(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),并且编写一个从命令行比较两者的查询正在产生所需的结果
下面的代码中有什么不正确的,为什么它不起作用?
答案 0 :(得分:0)
最终公司表因某些原因无法访问,所以我改变了帮助方法,如下所示:
static public function getCompanyFromRemoteId($id)
{
$company = DB::table('companies')->whereRemoteId($id)->first();
if ($company){
return $company->id;
}
else {
return 0;
}
}
立即行动。