Неопределенный индекс: expiry_date в laravel - PullRequest
0 голосов
/ 03 марта 2020

Я пытаюсь получить для пользователя дату истечения срока действия от create_at в laravel Я использую углерод, но когда я отправляю форму, он выдает это сообщение "Неопределенный индекс: expiry_date ** почему ??? Как рассчитать 1 день истечения срока действия с текущей даты (create_at)

мой код контроллера регистра

<?php

 namespace App\Http\Controllers\Auth;

 use App\User;
 use App\Http\Controllers\Controller;
 use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Validator;
 use Illuminate\Foundation\Auth\RegistersUsers;
 use Carbon\Carbon;

 class RegisterController extends Controller
{
use RegistersUsers;


protected $redirectTo = '/dashboard';


public function __construct()
{
    $this->middleware('guest');
}


protected function validator(array $data)
{
    return Validator::make($data, [
        'name' => ['required', 'string', 'max:255'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'string', 'min:8', 'confirmed'],
        'phone' => ['required', 'string'],
        'country' => ['required', 'string'],
        'state' => ['required', 'string'],
        'purpose' => ['required', 'string'],
        'package' => ['required', 'string'],
        'months' => ['required', 'string'],
        'quantity' => ['required', 'string'],
        'amount' => ['required', 'string'],
    ]);
}


protected function create(array $data)
{

    return User::create([
        'name' => $data['name'],
        'email' => $data['email'],
        'password' => Hash::make($data['password']),
        'phone' => $data['phone'],
        'country' => $data['country'],
        'state' => $data['state'],
        'purpose' => $data['purpose'],
        'expiry_date' => Carbon::now()->addHours($data['expiry_date']),  

        //'package' => $data['package'],
       // 'months' => $data['months'],
        //'quantity' => $data['quantity'],
        //'amount' => $data['amount'],
    ]);
}
}

, пожалуйста, помогите мне решить эту проблему и как рассчитать срок действия пользователя с текущей даты для одного данных

enter image description here

enter image description here

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 03 марта 2020

У вас нет expiry_date из request(), потому что он не определен в Validator.

Вам необходимо добавить expiry_date:

Solution # 1

return Validator::make($data, [
    'name'        => ['required', 'string', 'max:255'],
    'email'       => ['required', 'string', 'email', 'max:255', 'unique:users'],
    'password'    => ['required', 'string', 'min:8', 'confirmed'],
    'phone'       => ['required', 'string'],
    'country'     => ['required', 'string'],
    'state'       => ['required', 'string'],
    'purpose'     => ['required', 'string'],
    'package'     => ['required', 'string'],
    'months'      => ['required', 'string'],
    'quantity'    => ['required', 'string'],
    'amount'      => ['required', 'string'],
    'expire_date' => ['YOUR RULES'],         // <----------
]);

Solution # 2

Или, если вы хотите определить expire_date 1-дневный срок действия now(), вы должны:

return User::create([
    'name'        => $data['name'],
    'email'       => $data['email'],
    'password'    => Hash::make($data['password']),
    'phone'       => $data['phone'],
    'country'     => $data['country'],
    'state'       => $data['state'],
    'purpose'     => $data['purpose'],
    'expiry_date' => Carbon::now()->addDay(),
]);
0 голосов
/ 03 марта 2020

Кажется, у вас нет expiry_date в вашем запросе. Поэтому сначала попробуйте напечатать значение expiry_date.

Если его не существует, проверьте свой запрос.

Вы также можете использовать текущую дату, например

'expiry_date' => Carbon\Carbon::now()

Или в PHP вы можете сделать это как

'expiry_date' => date('Y-m-d H:i:s');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...