Все значения не вставлены в мою базу данных (laravel-5.7)

Я пытаюсь вставить значение в базу данных с помощью формы в Laravel, но все мои значения не вставляются.

Вставить только электронная почта, пароль, created_date

Вот мой код миграции: -

    Schema::defaultStringLength(191);
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('fname');
        $table->string('lname');
        $table->string('email')->unique();
        $table->string('phone');
        $table->string('gender');
        $table->string('dob');
        $table->string('religion');
        $table->string('mtn');
        $table->string('country');
        $table->string('city');
        $table->string('district');
        $table->string('upozila');
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });

Вот мой код контроллера: -

public function register(Request $request)
{
    $this->validation($request);
    User::create($request->all());
    return redirect('/');
}

public function validation($request)
{
    $validatedData = $request->validate([
    'fname' => 'required|max:255',
    'lname' => 'required|max:255',
    'email' => 'required|email|max:255|unique:users,email',
    'phone' => 'required|max:255',
    'gender' => 'required|max:255',
    'dob' => 'required|max:255',
    'religion' => 'required|max:255',
    'mtn' => 'required|max:255',
    'country' => 'required|max:255',
    'city' => 'required|max:255',
    'district' => 'required|max:255',
    'upozila' => 'required|max:255',
    'password' => 'required|min:6',
    'confirm_password' =>'required|min:6|same:password',
     ]);
}

Вот мой массив = $ request-> all ();

_token     "wDRoDeLkOFX5re5nba2Ufv5pr0iKzYVCr0tK9EFE"
fname      "nirab" 
lname      "nirax" 
email      "[email protected]" 
phone      "988907" 
gender     "male" 
dob        "2018-12-03" 
religion   "male" 
mtn        "male" 
country    "male" 
city       "male" 
district   "male" 
upozila    "male"
password   "1234567" 
confirm_password    "1234567" 
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
0
188
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это механизм защиты Laravel, Подробнее читайте здесь:

https://laravel.com/docs/5.7/eloquent#mass-assignment

Когда вы используете create, убедитесь, что ваша модель имеет свойство $ fillable, например:

protected $fillable = [
    'fname',
    'lname',
    'email',
    'phone',
    'gender',
    'dob',
    'religion',
    'mtn',
    'country',
    'city',
    'district',
    'upozila',
    'password'
];

Также обратите внимание, что ваш пароль должен быть хеширован, прежде чем вы сохраните его в своей базе данных.

вы также можете сделать protected $ guarded [], и все, что вы помещаете в массив, не подлежит массовому заполнению.

Brad Goldsmith 28.12.2018 17:06

Еще он должен отключить _token от запроса

gbalduzzi 28.12.2018 17:52
Ответ принят как подходящий

Вы можете использовать метод create, чтобы сохранить новую модель в одной строке. Вставленный экземпляр модели будет возвращен вам из метода. Однако перед этим вам нужно будет указать атрибут fillable или guarded в модели, поскольку все модели Eloquent по умолчанию защищают от массового назначения.

Для заполнения вы указываете, какие поля могут быть назначены массово в вашей модели, вы можете сделать это, добавив в модель специальную переменную $fillable. Итак, в модели:

    class users extends Model {
          protected $fillable = ['fname', 'lname', 'email', 'phone', 'gender', 'dob', 'religion', 'mtn', 'country', 'city', 'district', 'upozila', 'password']; 
          //only the field names inside the array can be mass-assign
    }

Подробнее: вы можете прочитать мой ответ и легко понять здесь Что означает «массовое назначение» в Laravel (Ссылка на сайт)

спасибо ... но я редактирую в app / user.php на защищенном $ fillable .. теперь он работает

Nirab 28.12.2018 18:40

Другие вопросы по теме