【问题标题】:Undefined index: expiry_date in laravel未定义索引:laravel 中的 expiry_date
【发布时间】:2020-03-03 12:25:35
【问题描述】:

我正在尝试从 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'],
    ]);
}
}

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

提前致谢。

【问题讨论】:

  • 似乎没有设置 $data['expiry_date']
  • $data['expiry_date'] 中有什么?在返回之前做dd($data['expiry_data'])

标签: php laravel


【解决方案1】:

您没有来自request()expiry_date,因为它没有在Validator 中定义。

您需要添加expiry_date

解决方案 #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'],         // <----------
]);

解决方案 #2

或者,如果您想从now() 定义expire_date 1 天到期,您应该:

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(),
]);

【讨论】:

  • 现在我在单击通话记录菜单“尝试获取非对象的属性 'expiry_date'”时收到此错误...请参阅我的附加图片
  • @AyushSrivastava 你能dd($callog)吗?
  • @AyushSrivastava 很高兴听到这个消息
【解决方案2】:

您的请求中似乎没有 expiry_date。所以首先尝试打印expiry_date的值。

如果不存在,请检查您的请求。

您也可以使用当前日期,例如

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

或者在 PHP 中你可以这样做

'expiry_date' => date('Y-m-d H:i:s');

【讨论】:

    猜你喜欢
    • 2018-08-02
    • 2012-08-24
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    • 2020-02-10
    • 2015-04-06
    • 2021-10-06
    相关资源
    最近更新 更多