【问题标题】:Why are some of the attributes not saving on my database?为什么某些属性没有保存在我的数据库中?
【发布时间】:2018-01-18 02:19:31
【问题描述】:

我是 Laravel 和 MySql 的新手,真的看不出我的错误在哪里。

当我尝试创建另一个用户,然后我检查我的数据库时,只保存了一些属性,但没有保存“last_name”、“user”、“type”、“active”和“address” .

另外两个用户是在phpMyAdmin中注册的,这就是他们完整的原因。

图片如下:

这是我的表的迁移文件:

public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name', 100);
        $table->string('last_name', 100);
        $table->string('email');
        $table->string('user', 50);
        $table->string('password', 60);
        $table->enum('type', ['user', 'admin']);
        $table->boolean('active');
        $table->text('address');
        $table->rememberToken();
        $table->timestamps();
    });
}

这是我在 UserController 中的“存储”方法:

public function store(SaveUserRequest $request)
{
    $data = [
        'name'          => $request->get('name'),
        'last_name'     => $request->get('last_name'),
        'email'         => $request->get('email'),
        'user'          => $request->get('user'),
        'password'      => $request->get('password'),
        'type'          => $request->get('type'),
        'active'        => $request->has('active') ? 1 : 0,
        'address'       => $request->get('address')
    ];
    $user = User::create($data);
    $message = $user ? 'Usuario agregado correctamente!' : 'El usuario NO pudo agregarse!';

    return redirect()->route('admin.user.index')->with('message', $message);
}

这是我的请求文件:

<?php

namespace App\Http\Requests;

use App\Http\Requests\Request;

class SaveUserRequest extends Request
{
     /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'name'      => 'required|max:100',
            'last_name' => 'required|max:100',
            'email'     => 'required|email|unique:users',
            'user'      => 'required|unique:users|min:4|max:20',
            'password'  => 'required|confirmed',
            'type'      => 'required|in:user,admin'
        ];
    }
}

这是我的 create.blade.php:

@extends('admin.template')

@section('content')

<div class="container text-center">

    <div class="page-header">
        <h1>
            <i class="fa fa-user"></i> USUARIOS <small>[ Agregar usuario ]</small>
        </h1>
    </div>

    <div class="row">
        <div class="col-md-offset-3 col-md-6">

            <div class="page">

                @if (count($errors) > 0)
                    @include('admin.partials.errors')
                @endif

                {!! Form::open(['route'=>'admin.user.store']) !!}

                    <div class="form-group">
                        <label for="name">Nombre:</label>

                        {!!
                            Form::text(
                                'name',
                                null,
                                array(
                                    'class'=>'form-control',
                                    'placeholder' => 'Ingresa el nombre...',
                                    'autofocus' => 'autofocus',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="last_name">Apellidos:</label>

                        {!!
                            Form::text(
                                'last_name',
                                null,
                                array(
                                    'class'=>'form-control',
                                    'placeholder' => 'Ingresa los apellidos...',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="email">Correo:</label>

                        {!!
                            Form::text(
                                'email',
                                null,
                                array(
                                    'class'=>'form-control',
                                    'placeholder' => 'Ingresa el correo...',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="user">Usuario:</label>

                        {!!
                            Form::text(
                                'user',
                                null,
                                array(
                                    'class'=>'form-control',
                                    'placeholder' => 'Ingresa el nombre de usuario...',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="password">Password:</label>

                        {!!
                            Form::password(
                                'password',
                                array(
                                    'class'=>'form-control',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="confirm_password">Confirmar Password:</label>

                        {!!
                            Form::password(
                                'password_confirmation',
                                array(
                                    'class'=>'form-control',
                                    //'required' => 'required'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="type">Tipo:</label>

                        {!! Form::radio('type', 'user', true) !!} User
                        {!! Form::radio('type', 'admin') !!} Admin
                    </div>

                    <div class="form-group">
                        <label for="address">Dirección:</label>

                        {!!
                            Form::textarea(
                                'address',
                                null,
                                array(
                                    'class'=>'form-control'
                                )
                            )
                        !!}
                    </div>

                    <div class="form-group">
                        <label for="active">Active:</label>

                        {!! Form::checkbox('active', null, true) !!}
                    </div>

                    <div class="form-group">
                        {!! Form::submit('Guardar', array('class'=>'btn btn-primary')) !!}
                        <a href="{{ route('admin.user.index') }}" class="btn btn-warning">Cancelar</a>
                    </div>

                {!! Form::close() !!}

            </div>

        </div>
    </div>

</div>
@stop

这是我请求的 var_dump 的值:

array(8) { ["name"]=> string(4) "Joel" ["last_name"]=> string(8) "Bautista" ["email"]=> string(17) "joe23@ hotmail.com" ["user"]=> string(5) "joe23" ["password"]=> string(6) "123456" ["type"]=> string(5) "admin" ["active" ]=> int(1) ["address"]=> string(15) "没什么好说的。" }

public function store(SaveUserRequest $request)
{
    $data = [
        'name'          => $request->get('name'),
        'last_name'     => $request->get('last_name'),
        'email'         => $request->get('email'),
        'user'          => $request->get('user'),
        'password'      => $request->get('password'),
        'type'          => $request->get('type'),
        'active'        => $request->has('active') ? 1 : 0,
        'address'       => $request->get('address')
    ];
    $user = User::create($data);

    var_dump($data);
    die();

    //$message = $user ? 'Usuario agregado correctamente!' : 'El usuario NO pudo agregarse!';
    //return redirect()->route('admin.user.index')->with('message', $message);
}

【问题讨论】:

  • 可以 var_dump 请求的值吗?
  • 我已经添加了它们。他们似乎很好,我真的不明白他们为什么不保存在数据库中。
  • 这就是价值?
  • 是的,我使用这些值添加了一个新用户,但同样的问题仍然存在,“last_name”、“user”、“type”、“active”和“address”没有保存在数据库。
  • 您的模态中是否将它们放在 $fillable 中?

标签: php mysql laravel-5


【解决方案1】:

检查用户模型(User.php)的可填充属性。使用 create 方法时,您需要在模型上指定可填充或受保护的属性。请检查它并尝试在需要使用“创建”方法插入的可填充属性中添加其他列。

【讨论】:

  • 我正要回答同样的问题 :) @Miguel1893 你可以关注这个,我认为它会解决你的问题
  • 非常感谢大家!那是我的问题,它现在工作得很好:)
猜你喜欢
  • 2017-11-01
  • 1970-01-01
  • 2020-05-26
  • 1970-01-01
  • 2016-10-21
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多