繁体   English   中英

model [App\User] NULL 387 /laravel/framework/src/Illuminate/Database/Eloquent/Builder.ZE1BFD762321E409CEE4AC0B6E849 没有查询结果

[英]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 = '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi'; // password
        $user->employee_status = 0;

        $user->save();
        if($user)
            //$user = $user->assignRole($role);
            return $user;
    }
}

在我的 controller 中:

$import = new HierarchyImport;
$importExcel = Excel::import($import, $request->file('file'));

PS:我试过User::create($user); 但结果相同,create 方法返回 model 的无查询结果。

所以我发现excel文件中的一些字段是null,当我试图插入它们时,它给出了奇怪的错误No query results for model

这已通过在插入前处理 null 值来解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM