SQLSTATE [HY000]: общая ошибка: 1364 Поле 'name' не имеет значения по умолчанию laravel 5.5

0

Я смотрю с Laravel, и у меня возникают проблемы с попыткой сделать простую вставку, но кажется, что все мои заполняемые поля не включаются. Это ошибка:

SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value 
(SQL: insert into 'addresses' ('updated_at', 'created_at') 
values (2017-12-25 09:31:49, 2017-12-25 09:31:49))

Как вы можете видеть, только created_at и updated_at вот-вот будут вставлены, я подумал, что, может быть, я забыл свои fillable вары, но это моя модель:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Addresses extends Model
{

protected $fillable = [
    'name',
    'city',
    'suburb',
    'street',
    'o_number',
    'i_number',
    'postal_code',
    'phone_s',
    'email_s',
    'google_map',
    'customer_id'
];

}

И контроллер

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Addresses;
use App\Customers;

class AddressesController extends Controller
{
public function __construct()
{
    $this->middleware('auth');
}

public function store(Request $request){

    $create = Addresses::create([
        'name' => request('name'),
        'city' => request('city'),
        'suburb' => request('suburb'),
        'street' => request('street'),
        'o_number' => request('o_number'),
        'i_number' => request('i_number'),
        'postal_code' => request('postal_code'),
        'phone_s' => request('phone_s'),
        'email_s' => request('email_s'),
        'google_map' => request('google_map'),
        'customer_id' => Customers::where('code',$request->session()->get('customer_code'))->first()->id
    ]);

    $success = $create ? $request->session()->flash('success', '¡Registro exitoso!') : $request->session()->flash('success', 'Ooops! Algo salio mal :(');

    return redirect('addresses/'.$request->session()->get('customer_code'));
 }
}

Эхо значения request() срабатывает! Так что я пропал без вести прямо сейчас, у меня есть другие модели и контроллеры, работающие хорошо одинаково. Пожалуйста помоги!

Теги:
laravel-5

5 ответов

6

Эта ошибка показывает, что поле NAME требуется в вашей базе данных. Попробуйте изменить свой сценарий миграции и поместить значение по умолчанию в это поле или сделать его нулевым.

например.

$table->string('name')->nullable();

ИЛИ ЖЕ

$table->string('name')->default('');

Затем запустите обновление миграции.

  • 0
    Если я это сделаю, то измените только сообщение: name для customer_id , и оба поля, как phone_s , необходимы для моих целей, и при этом ничего не вставляют
  • 0
    хммм. Я думаю, что ошибка в том, как вы вызываете метод $ request. Попробуйте вызвать переменные, используя $ request-> name, $ request-> city и т. Д.
Показать ещё 1 комментарий
0

Goto "phpmyadmin" >> "Переменные", затем найдите "sql_mode", отредактируйте и удалите "STRICT_ALL_TABLES или STRICT_TRANS_TABLES",

Он работает для меня. Надеюсь, это поможет всем.

Изображение 174551

0

Убедитесь, что request() имеет ключевое слово "имя". Заполните запрос ("имя") на случайную строку и повторите попытку.

0

Я решил это, используя save()

$addresses = new Addresses;
$customer_id = Customers::where('code',$request->session()->get('customer_code'))->first()->id;

    $addresses->name = $request->name;
    $addresses->city = $request->city;
    $addresses->suburb = $request->suburb;
    $addresses->street = $request->street;
    $addresses->o_number = $request->onumber;
    $addresses->i_number = $request->inumber;
    $addresses->postal_code = $request->postal_code;
    $addresses->phone_s = $request->phone_s;
    $addresses->email_s = $request->email_s;
    $addresses->google_map = $request->map;
    $addresses->customer_id = $customer_id;

    $success = $addresses->save() ? $request->session()->flash('success', '¡Registro exitoso!') : $request->session()->flash('success', 'Ooops! Algo salio mal :(');

    return redirect('addresses/'.$request->session()->get('customer_code'));

Он работает правильно

0

Вы можете проверить опцию Null в структуре таблицы, например:

Изображение 174551

  • 0
    Это ноль, как вы можете видеть на этой картинке
  • 0
    Хорошо, попробуйте установить значение по умолчанию как пустое в структуре таблицы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню