【问题标题】:Laravel 5.8 Field 'name doesn't have a default valueLaravel 5.8 Field 'name 没有默认值
【发布时间】:2019-08-25 10:05:10
【问题描述】:

您好,我在 laravel 中开发学生 CRUD,但我在将数据保存在我的数据库中时遇到问题。

这是 laravel 返回的问题。 SQLSTATE[HY000]:一般错误:1364 字段“名称”没有默认值

我的商店功能。

public function store(Request $request)
    {
        $alumno = Alumno::create();
        $alumno->fill($request->all());
        $alumno->save();
        return redirect('/alumnos');
    }

我的模特:

class Alumno extends Model
{
    protected $fillable = ['name','apellido','matricula','correo'];
}

我的表格:

<form action="/alumnos" method="post">
    @csrf
    <fieldset class="form-fieldset">
        <div class="form-group">
            <label class="form-label">Nombre<span class="form-required">*</span></label>
            <input type="text" class="form-control" name="name" required/>
        </div>
        <div class="form-group">
            <label class="form-label">Apellido<span class="form-required">*</span></label>
            <input type="text" class="form-control" name="apellido" required/>
        </div>
        <div class="form-group">
            <label class="form-label">Matricula<span class="form-required">*</span></label>
            <input type="number" class="form-control" required name="matricula" />
        </div>
        <div class="form-group mb-0">
            <label class="form-label">Correo Electronico<span class="form-required">*</span></label>
            <input type="email" class="form-control" name="correo" required />
        </div>
    </fieldset>
    <input type="submit" class="btn btn-primary" value="Guardar" />
</form>

我做错了什么?请帮忙,谢谢!!! :)

【问题讨论】:

  • 名称值是否显示在$request-&gt;all()
  • 你能转储请求参数吗?您可以使用 dd() 来做到这一点。 dd($request->all()) 并检查传递给控制器​​的请求数据。
  • 尝试以这种方式更改表单操作,
  • @shihab 你好!这是 dd 数组的返回值:5 [▼ "_token" => "7RiPoH328tEhME0TKIP3bWJM4q5WvxgQpAvIU6Yb" "name" => "Angel" "apellido" => "Gomez" "matricula" => "131231" "correo" => "angel @mail.com" ]
  • @shihab 谢谢,它的工作原理!我再也不会相信文档了 x)

标签: php laravel


【解决方案1】:

问题在于表单操作 URL 尝试将操作更改为{{ action('YourController@store') }}

【讨论】:

    【解决方案2】:

    你应该如下保存数据:

    public function store(Request $request)
        {
            $alumno = new Alumno();
            $alumno = $alumno->create($request->all());
            return redirect('/alumnos');
        }
    

    它会正常工作的。

    【讨论】:

      【解决方案3】:

      你应该在迁移中添加一行

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

      如上设置表格

      
       <form action="{{action('YourController@store')}}">
      
      

      用于插入所有请求输入

      
      Alumno::create($request->all());
      
      

      【讨论】:

        【解决方案4】:

        你用两种不同的方式解决这个问题

        1. 您的数据库结构必须更改如下。默认字段必须是 Null。其中 description 字段是您的数据库字段。

        像下面这样

        1. 打开你的模型database/migrations/your_model 然后像这个代码一样使用

          Schema::table('your_model', function (Blueprint $table) { $table->string('name')->nullable(); });

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-28
          • 2021-11-28
          • 1970-01-01
          • 2020-09-14
          相关资源
          最近更新 更多