Все записи нулевые laravel - PullRequest
1 голос
/ 18 июня 2020

У меня проблема при сохранении объекта в базе данных 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;

}

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

попробуйте сменить модель

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

  protected $table = 'customers';
}
0 голосов
/ 18 июня 2020

Если в $ customer есть данные, вам все равно нужно передать их в представление.

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

Вы также неправильно обращаетесь к данным, вы пытаетесь настроить таргетинг на переменную используя строки перевода. Которые, вероятно, еще не настроены. Документация о языковых строках.

Итак, чтобы получить доступ к нему в вашем шаблоне лезвия . Используйте скобки и выберите переменную, которую вы только что передали. В вашем случае это приводит к следующему:

<label for="nome" class="col-md-4 col-form-label text-md-right"> {{ $customer->nome }}</label>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...