未定义索引:laravel 中的 expiry_date

我正在尝试从 laravel 中的 created_at 向用户获取到期日期我正在使用碳,但是当我提交表单时它会给出此消息“未定义索引:到期日期**为什么???我如何计算 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'],

    ]);

}

}

请帮我。解决这个问题以及我如何从当前日期计算一个数据的用户到期时间


慕虎7371278
浏览 108回答 2
2回答

肥皂起泡泡

你没有expiry_datefrom request(),因为它没有定义在Validator.您需要添加expiry_date:解决方案#1return Validator::make($data, [&nbsp; &nbsp; 'name'&nbsp; &nbsp; &nbsp; &nbsp; => ['required', 'string', 'max:255'],&nbsp; &nbsp; 'email'&nbsp; &nbsp; &nbsp; &nbsp;=> ['required', 'string', 'email', 'max:255', 'unique:users'],&nbsp; &nbsp; 'password'&nbsp; &nbsp; => ['required', 'string', 'min:8', 'confirmed'],&nbsp; &nbsp; 'phone'&nbsp; &nbsp; &nbsp; &nbsp;=> ['required', 'string'],&nbsp; &nbsp; 'country'&nbsp; &nbsp; &nbsp;=> ['required', 'string'],&nbsp; &nbsp; 'state'&nbsp; &nbsp; &nbsp; &nbsp;=> ['required', 'string'],&nbsp; &nbsp; 'purpose'&nbsp; &nbsp; &nbsp;=> ['required', 'string'],&nbsp; &nbsp; 'package'&nbsp; &nbsp; &nbsp;=> ['required', 'string'],&nbsp; &nbsp; 'months'&nbsp; &nbsp; &nbsp; => ['required', 'string'],&nbsp; &nbsp; 'quantity'&nbsp; &nbsp; => ['required', 'string'],&nbsp; &nbsp; 'amount'&nbsp; &nbsp; &nbsp; => ['required', 'string'],&nbsp; &nbsp; 'expire_date' => ['YOUR RULES'],&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;// <----------]);解决方案#2或者,如果您想定义expire_date1 天到期now(),您应该:return User::create([&nbsp; &nbsp; 'name'&nbsp; &nbsp; &nbsp; &nbsp; => $data['name'],&nbsp; &nbsp; 'email'&nbsp; &nbsp; &nbsp; &nbsp;=> $data['email'],&nbsp; &nbsp; 'password'&nbsp; &nbsp; => Hash::make($data['password']),&nbsp; &nbsp; 'phone'&nbsp; &nbsp; &nbsp; &nbsp;=> $data['phone'],&nbsp; &nbsp; 'country'&nbsp; &nbsp; &nbsp;=> $data['country'],&nbsp; &nbsp; 'state'&nbsp; &nbsp; &nbsp; &nbsp;=> $data['state'],&nbsp; &nbsp; 'purpose'&nbsp; &nbsp; &nbsp;=> $data['purpose'],&nbsp; &nbsp; 'expiry_date' => Carbon::now()->addDay(),]);

慕莱坞森

似乎您的请求中没有到期日期。所以首先尝试打印expiry_date的值。如果它不存在,请检查您的请求。您还可以使用当前日期,例如'expiry_date'&nbsp;=>&nbsp;Carbon\Carbon::now()或者在 PHP 中你可以这样做'expiry_date'&nbsp;=>&nbsp;date('Y-m-d&nbsp;H:i:s');
打开App,查看更多内容
随时随地看视频慕课网APP