【发布时间】: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 中?