调用数组 laravel 5.4 上的成员函数 first()

Call to a member function first() on array laravel 5.4

我是 laravel 5.4 的新手,对 blade 模板了解不多。

问题是我将数组传递给视图并尝试通过 blade 模板提供的 first() 函数获取数组元素的第一个索引,但它给我错误 Call to a member function first() on array

这是我的控制器代码

 public function authenticate(Request $request )
 {               
    if (Auth::attempt(['email' => $request->input('email'), 'password' => 
        $request->input('password'), 'Status' => 0])) 
        {
            // Authentication passed...
            return redirect()->intended('Users');
        }
    else
    {
        $json=array('email'=>'You cant leave Email field empty');         
        return  View::make('Auth/login')->with('error',($json));           
    }
 }

这是我的查看代码

  @if($errors->any())         
       {{ $errors->first('email') }}
  @endif

我正在寻找完全适合我需要的解决方案。如果我做错了什么,请纠正我。 谢谢...

您可以使用

@foreach ($errors as $error)
   {{ $error }}
@endforeach

所以你可以看到返回的错误列表

在您的方法中,您没有使用 Laravel 验证。您只是传递一个数组,基本的 php 数组没有 anyfirst 等方法。它们属于 Laravel 个集合。

它只是一个数组,您可以按照我在下面解释的那样访问数组元素

所以如果你想保留你的代码,你可以这样做

@if(isset($error))
   {{$error['email'] }} 
@endif

但正确的做法是验证部分;

$this->validate($request, [
        'email' => 'required| email',
    ]);

请深入阅读有关验证和身份验证的文档https://laravel.com/docs/5.4/validation