【问题标题】:All records are null laravel所有记录都是空 laravel
【发布时间】:2020-06-18 13:35:31
【问题描述】:

我在 SQLite 数据库中保存对象时遇到问题。在我插入非空值的表单中,请求具有正确的数据,但是当我将对象保存在数据库中时,只有空值。在表格中,我只提供了 1 个示例,但针对各种输入重复了该表格。

CustomerController.php

$data = request()->validate([
    'nome' => 'required|max:40|unique:users',
    'cognome' => 'required|max:40|unique:users',
    'cap' => 'required|min:5',
    'comune' => 'required|max:40',
    'via' => 'required|max:40',
    'civico' => 'required|max:40',
    'telefono' => 'required',
    'email' => 'email|unique:users',
]);
$customer = new Customer();
$customer->nome = $request->input('nome');
$customer->cognome = $request->input('cognome');
$customer->cap = $request->input('cap');
$customer->comune = $request->input('comune');
$customer->via = $request->input('via');
$customer->civico = $request->input('civico');
$customer->telefono = $request->input('telefono');
$customer->email = $request->input('email');

($customer->save());

return view('home');

web.php

Route::get('customer/create', 'CustomerController@create')->middleware(CheckAdmin::class)->name('customer.create');

Route::post('customer/', 'CustomerController@store')->middleware(CheckAdmin::class)->name('customer.store');

表格

<form method="POST" action="/customer/">
    @csrf
    <div class="form-group row">
        <label for="nome" class="col-md-4 col-form-label text-md-right">{{ __('Nome') }}</label>

        <div class="col-md-6">
            <input id="nome" type="text" class="form-control @error('nome') is-invalid @enderror" name="nome" value="{{ old('nome') }}" required autocomplete="nome" autofocus>

            @error('nome')
                <span class="invalid-feedback" role="alert">
                    <strong>{{ $message }}</strong>
                </span>
            @enderror
        </div>
    </div>
    ...
</form>

型号

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Customer extends Model
{
    protected $fillable = ['*'];


    protected $table = 'customers';

    public $nome;
    public $cognome;
    public $cap;
    public $comune;
    public $via;
    public $civico;
    public $telefono;
    public $email;

}

【问题讨论】:

  • 只是出于兴趣,为什么 ($customer-&gt;save()); 周围的括号没有必要
  • 请在 ($customer->save()); 之后尝试 dd(($customer);
  • 函数应该类似于:public function store(Request $request) {....}。验证应如下所示: $data = $request->validate(.....) ;
  • 确保在模型中添加了所有fillable字段,并将($customer-&gt;save());更改为$customer-&gt;save();
  • 如果我做一个 dd 我得到正确的数据

标签: php laravel sqlite sql-null


【解决方案1】:

尝试改变你的模型

class Customer extends Model
{
  protected $fillable = [
    'nome', 'cognome', 'cap', 'comune', 'via', 'civico', 'telefono', 'email',
  ];

  protected $table = 'customers';
}

【讨论】:

    猜你喜欢
    • 2014-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2019-12-27
    • 1970-01-01
    • 2013-08-17
    相关资源
    最近更新 更多