没有模型 [App\User] NULL 387 /laravel/framework/src/Illuminate/Database/Eloquent/Builder.php 的查询结果
No query results for model [App\User] NULL 387 /laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
我知道有人问过类似的问题,但这些错误的原因并不意味着我的情况,因为我没有在代码中的任何地方获取结果。
我没有在代码中的任何地方使用 'find' 或 'findOrFail' 方法。
我收到这个错误:
No query results for model [App\User] NULL 387 /laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
我的Excel导入代码:
<?php
namespace App\Imports;
use Auth;
use App\User;
use App\EmployeePerformance;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class HierarchyImport implements ToCollection, WithHeadingRow {
public function collection(Collection $rows) {
foreach ($rows as $row) {
$user = $this->createUserNew($row, $row['role'], $row['parent_id']);
}
}
/**
* Transform a date value into a Carbon object.
*
* @return \Carbon\Carbon|null
*/
public function transformDate($value, $format = 'Y-m-d'){
try {
return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));
} catch (\ErrorException $e) {
return \Carbon\Carbon::createFromFormat($format, $value);
}
}
public function createUserNew($row, $role, $parent_id){
$emp_id = $row['employee_id'];
$name = $row['employee_name'];
$email = $row['email'];
$user = new User;
$user->company_id = 1;
$user->employee_id = $emp_id;
$user->parent_id = $parent_id;
$user->title = $row['title'];
$user->region_number = 2;
$user->name = trim(preg_replace('/[^A-Za-z0-9\-]/', ' ', $name));
$user->email = $email;
$user->email_verified_at = null;
$user->gender = ($role == 'employee') ? $row['gender'] : null;
$user->hire_date = ($role == 'employee') ? $this->transformDate($row['hire_date']) : null;
$user->date_of_birth = null;
$user->age = ($role == 'employee') ? $row['dob'] : null;
$user->password = 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; // password
$user->employee_status = 0;
$user->save();
if($user)
//$user = $user->assignRole($role);
return $user;
}
}
在我的控制器中:
$import = new HierarchyImport;
$importExcel = Excel::import($import, $request->file('file'));
PS:
我试过 User::create($user);
但结果相同,创建方法返回模型的无查询结果。
所以我发现 excel 文件中的一些字段是空的,当我试图插入它们时,它给出了奇怪的错误 No query results for model .
这已通过在插入前处理空值得到解决。
我知道有人问过类似的问题,但这些错误的原因并不意味着我的情况,因为我没有在代码中的任何地方获取结果。
我没有在代码中的任何地方使用 'find' 或 'findOrFail' 方法。
我收到这个错误:
No query results for model [App\User] NULL 387 /laravel/framework/src/Illuminate/Database/Eloquent/Builder.php
我的Excel导入代码:
<?php
namespace App\Imports;
use Auth;
use App\User;
use App\EmployeePerformance;
use Illuminate\Support\Collection;
use Maatwebsite\Excel\Concerns\ToCollection;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use Illuminate\Support\Facades\Validator;
use Illuminate\Validation\Rule;
class HierarchyImport implements ToCollection, WithHeadingRow {
public function collection(Collection $rows) {
foreach ($rows as $row) {
$user = $this->createUserNew($row, $row['role'], $row['parent_id']);
}
}
/**
* Transform a date value into a Carbon object.
*
* @return \Carbon\Carbon|null
*/
public function transformDate($value, $format = 'Y-m-d'){
try {
return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));
} catch (\ErrorException $e) {
return \Carbon\Carbon::createFromFormat($format, $value);
}
}
public function createUserNew($row, $role, $parent_id){
$emp_id = $row['employee_id'];
$name = $row['employee_name'];
$email = $row['email'];
$user = new User;
$user->company_id = 1;
$user->employee_id = $emp_id;
$user->parent_id = $parent_id;
$user->title = $row['title'];
$user->region_number = 2;
$user->name = trim(preg_replace('/[^A-Za-z0-9\-]/', ' ', $name));
$user->email = $email;
$user->email_verified_at = null;
$user->gender = ($role == 'employee') ? $row['gender'] : null;
$user->hire_date = ($role == 'employee') ? $this->transformDate($row['hire_date']) : null;
$user->date_of_birth = null;
$user->age = ($role == 'employee') ? $row['dob'] : null;
$user->password = 'yIXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; // password
$user->employee_status = 0;
$user->save();
if($user)
//$user = $user->assignRole($role);
return $user;
}
}
在我的控制器中:
$import = new HierarchyImport;
$importExcel = Excel::import($import, $request->file('file'));
PS:
我试过 User::create($user);
但结果相同,创建方法返回模型的无查询结果。
所以我发现 excel 文件中的一些字段是空的,当我试图插入它们时,它给出了奇怪的错误 No query results for model .
这已通过在插入前处理空值得到解决。