我在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;
}
试着改变你的模型
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>