【问题标题】:Error "Trying to access array offset on value of type null" laravel 5.8.26 Php 7.4.2 [duplicate]错误“尝试访问 null 类型值的数组偏移量”laravel 5.8.26 Php 7.4.2 [重复]
【发布时间】:2020-05-28 00:47:24
【问题描述】:

我使用以下功能从管理面板插入/创建新用户:

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|same:confirm-password'
    ]);


    $input = $request->all();
    $input['password'] = Hash::make($input['password']);


    User::create($input);

    return redirect()->route('admin.pages.users.index')
        ->with('success','User created successfully');
}

当我提交时,我收到如下错误:-

尝试访问 null 类型值的数组偏移量

编辑: 我发现了我的问题。我的问题是电子邮件验证规则。当我删除电子邮件验证插入数据为真。

我该如何解决这个错误!

【问题讨论】:

  • @NicoHaase:查看我的编辑。
  • 试试'email' => 'required|email|unique:users',
  • @V-K: 如果只是 'email' => 'email' 我看到错误并且不起作用
  • 你的php和laravel哪个版本?

标签: php laravel laravel-5


【解决方案1】:

我在生产应用程序中遇到了同样的问题,将 PHP 版本更改为 7.3 解决了这个问题。

【讨论】:

  • 那么,您从一个生命周期结束、仅安全修复发布到一个完全不受支持的发布?好计划。
【解决方案2】:

我在使用 laravel 5.8.* 版和 php 7.4 版时遇到了同样的问题。我已经解决了这个问题更新作曲家。我只是在终端中使用这个命令

composer update

php composer.phar update

轻松解决了我的问题。

【讨论】:

  • 即使提交该命令非常危险。它也解决了我的问题。我在使用 Laravel 5.8 和 PHP 7.4 进行单元测试时遇到问题。
  • @Mycodingproject,很高兴为您解决问题
【解决方案3】:

In line 147 of this file vendor\egulias\email-validator\EmailValidator\Parser\Parser.php

从这个if ($previous['type'] === EmailLexer::S_BACKSLASH更改它

致这个if (isset($previous['type']) && $previous['type'] === EmailLexer::S_BACKSLASH ...

【讨论】:

  • 永远不要直接修改供应商包,通过 composer update 进行的后续更新可能会覆盖您所做的任何更改。
【解决方案4】:

我遇到了同样的问题,调试后我发现我的 smtp 凭据无法正常工作,电子邮件发送模块无法正常工作,这就是我收到此错误的原因,在修复凭据后,我的代码开始正常工作并且异常消失。

我建议您检查您的 smtp 凭据并让您打开不太安全的应用设置。

【讨论】:

  • 打开我不太安全的应用设置对我有用,我的电子邮件提供商似乎因为多次失败的日志尝试而将其关闭。
【解决方案5】:

将 Composer.json 中的 PHP 版本更改为 7.4.1 并运行

composer update

这对我有用

【讨论】:

  • 如果您的网站已经上线并且无法更新作曲家,您可以在您的网络主机 cpanel 中的 PHP 版本在 PHP 7.3 和 7.4 之间切换 您的回答为我节省了数小时的工作时间......谢谢跨度>
【解决方案6】:

试试这个希望对你有帮助

public function store(Request $request)
{
    $this->validate($request, [
        'name' => 'required',
        'email' => 'required|email|unique:users,email',
        'password' => 'required|same:confirm-password'
    ]);


    $insert_array = [
                'name' => $request->name,
                'email' => $request->email,
                'password' => Hash::make($request->password)
            ];

    User::create($insert_array );

    return redirect()->route('admin.pages.users.index')
        ->with('success','User created successfully');
}

【讨论】:

    猜你喜欢
    • 2021-02-02
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2021-01-09
    • 2022-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-07-23
    相关资源
    最近更新 更多