Laravel конфликт SoftDeletes с функцией UpdateOrCreate - PullRequest
0 голосов
/ 03 марта 2020

Моя функция updateOrCreate выдает эту ошибку

[Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Invalid column name 'deleted_at'.

, когда я внедряю

use SoftDeletes;

имя столбца «исключено_» существует на моем базы данных таблиц, я пытаюсь добавить его в заполняемый файл, но он не работает, и, похоже, я не могу найти подобные проблемы в Интернете.

моя функция updateOrCreate

Employee::updateOrCreate(['eeno' => $eeno],
            [
                'eeno' => $eeno,
                'name' => $name,
                'originally_hired' => $originally_hired,
                'date_hired' => $date_hired,
                'regularization_date' => $regularization_date,
                'birth_date' => $birth_date,
                'age' => floor(number_format($age, 2)),
                'position_id' => $position_id,
                'job_id' => $job_id,
                'employee_status_id' => $employment_status_id,
                'section_id' => $section_id,
                'department_id' => $department_id,
                'division_id' => $division_id,
                'area_id' => $area_id,
                'head_eeno' => $head_eeno,
//                'rate' => $rate,
//                'position_allowance' => $position_allowance,
                'rcc' => $rcc,
                'business_unit' => $business_unit,
                'civil_status' => $civil_status,
                'tax_code' => $tax_code,
                'gender' => $gender,
                'educational_attainment' => $educational_attainment,
                'school' => $school,
                'license' => $licensure,
                'post_graduate' => $post_graduate,
                'post_graduate_school' => $post_graduate_school,
                'religion' => $religion,
                'tin_no' => $tin_no,
                'phil_health_no' => $philhealth_no,
                'hdmf' => $hdmf,
                'sss_no' => $sss_no,
                'address' => $address,
                'remarks' => $remarks
            ]

модель моего сотрудника

namespace App;

use Carbon\Carbon;
use Exception;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
use Yajra\DataTables\Facades\DataTables;
use Illuminate\Support\Facades\Gate;
use Illuminate\Validation\ValidationException;

class Employee extends Model
{

    use SoftDeletes;

    protected $fillable = [
        'eeno','name','originally_hired','date_hired','regularization_date','birth_date','age','position_id',
        'job_id','employee_status_id','rate','position_allowance','rcc','business_unit','section_id',
        'department_id','division_id','area_id','head_eeno','civil_status','tax_code','gender','educational_attainment',
        'school','license','post_graduate','religion','tin_no','phil_health_no','hdmf','sss_no','vmc_cares_membership',
        'address','picture','post_graduate_school','remarks'
    ];

    protected $table = 'employee';
}

1 Ответ

0 голосов
/ 03 марта 2020

Вам необходимо добавить столбец delete_at в вашу миграцию со следующим через файл миграции, который создает таблицу, или другой файл, модифицирующий ее:

$table->softDeletes();

https://laravel.com/docs/master/eloquent#soft -deleting

...