提问者:小点点

所有记录均为null laravel


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

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;

}

共2个答案

匿名用户

试着改变你的模型

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

  protected $table = 'customers';
}

匿名用户

如果$customer中有数据,您仍然需要将其传递给视图。

return view('home')->with($customer);

您还错误地访问了数据,您试图使用转换字符串来锁定变量。 可能还没有设置。 有关语言字符串的文档。

所以要在刀片模板中访问它。 使用方括号并以刚才传递的变量为目标。 在您的情况下,结果如下:

<label for="nome" class="col-md-4 col-form-label text-md-right"> {{ $customer->nome }}</label>