SQLSTATE = 23502 происходит на моем развернутом веб-сайте.(через загрузку .csv) - PullRequest
1 голос
/ 03 мая 2019

Мой веб-сайт развернут с помощью Heroku (php / Laravel)

Я хочу загрузить пользователей на свой веб-сайт с помощью загрузки файла .csv.

Всякий раз, когда я загружаю пользователей через .csv, онвыдает сообщение об ошибке SQLSTATE [23502].

SQLSTATE [23502]: нарушение не нулевое: 7 ОШИБКА: нулевое значение в столбце «first_name» нарушает ненулевое ограничение

DETAIL: строка с ошибками содержит (3, ноль, 0, ноль, ноль, ноль, ноль, ноль, ноль, ноль, 2019-05-02 15:00:48, 2019-05-02 15:00:48, ноль).(SQL: вставить в значения «users» («updated_at», «creation_at») (2019-05-02 15:00:48, 2019-05-02 15:00:48), возвращая «id»)

Я попытался протестировать свой код, загрузив файл .csv в localhost, похоже, он работает отлично.Но всякий раз, когда я тестирую его на своем развернутом бесплатном веб-сайте Heroku, он выдает мне код ошибки SQLSTATE [23502].

UploadController

public function index()
{
    $users = User::where('id', Auth::user()->id)->get();
    return view('admin.uploads.index',compact('users'));
}

public function store(Request $request)
{
    //get file
    $upload = $request->file('upload-file');
    $filePath = $upload->getRealPath();
    //open file
    $file = fopen($filePath, 'r');
    $header = fgetcsv($file);

    $escapedHeader = [];
    foreach ($header as $key => $value) {
        $lheader = strtolower($value);
        $escapedItem = preg_replace('/[^a-z_]/', '', $lheader);
        array_push($escapedHeader, $escapedItem);
    }
    // looping through other columns
    while ($columns = fgetcsv($file)) {
        if ($columns[0] == "") {
            continue;
        }
        foreach ($columns as $key => $value) {
            $val = preg_replace('/\D/', '', $value);

        }
        $data = array_combine($escapedHeader, $columns);


        foreach ($data as $key => $value) {
            $value = ($key == 'role_id' || $key == 'is_active') ? (integer)$value : (string)$value;
        }

        $role_id = $data['role_id'];
        $is_active = $data['is_active'];
        $first_name = $data['first_name'];
        $last_name = $data['last_name'];
        $email = $data['email'];
        $password = $data['password'];
        $course = $data['course'];
        $student_number = $data['student_number'];

        $user = User::create();
        $user->role_id = $role_id;
        $user->is_active = $is_active;
        $user->first_name = $first_name;
        $user->last_name = $last_name;
        $user->email = $email;
        $user->password = bcrypt($password);
        $user->save();


        $student = Student::create();
        $student->user_id = $user->id;
        $student->course = $course;
        $student->student_number = $student_number;
        $student->save();

    }

    Session::flash('success', 'You successfully created new users.');
    return redirect('/admin/users');
}

Что может быть причинойэто сообщение об ошибке на моем развернутом веб-сайте?Я подозреваю, что это может быть несоответствие между базой данных моего развернутого веб-сайта и базой данных localhost.

Как я могу сделать мой код совместимым, возможно?

Спасибо за расширенную помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...