2017-02-02 2 views
0

Ich erhalte diese Fehlermeldung:Anruf auf eine Elementfunktion alle() auf Array in Laravel

FatalErrorException in Builder.php line 485:

Call to a member function all() on array

mein Registerregler

namespace App\Http\Controllers\Auth; 

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


class RegisterController extends Controller 
{ 
    /* 
    |-------------------------------------------------------------------------- 
    | Register Controller 
    |-------------------------------------------------------------------------- 
    | 
    | This controller handles the registration of new users as well as their 
    | validation and creation. By default this controller uses a trait to 
    | provide this functionality without requiring any additional code. 
    | 
    */ 

    use RegistersUsers; 

    /** 
    * Where to redirect users after registration. 
    * 
    * @var string 
    */ 
    protected $redirectTo = '/'; 

    /** 
    * Create a new controller instance. 
    * 
    * @return void 
    */ 
    public function __construct() 
    { 
     $this->middleware('guest'); 
    } 

    /** 
    * Get a validator for an incoming registration request. 
    * 
    * @param array $data 
    * @return \Illuminate\Contracts\Validation\Validator 
    */ 
    protected function validator(array $data) 
    { 
     return Validator::make($data, [ 
      'fullname' => 'required|max:255', 
      'email' => 'required|email|max:255|unique:users', 
      'password' => 'required|min:6', 
     ]); 
    } 

    /** 
    * Create a new user instance after a valid registration. 
    * 
    * @param array $data 
    * @return User 
    */ 
    protected function create(array $data) 
    { 

     return User::create([ 
      'name' => $data['fullname'], 
      'email' => $data['email'], 
      'password' => bcrypt($data['password']), 
     ]); 
    } 

    /** 
    * Handle a registration request for the application. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function register(Request $request) 
    { 
     $validator = $this->validator($request->all()); 

     if ($validator->fails()) { 
      $this->throwValidationException(
       $request, $validator 
      ); 
     } 
     $user = $this->create($request->all()); 


     return redirect($this->redirectPath()); 
    } 
} 
+0

Es hat nichts mit dem Controller zu tun, den Sie mit Ihrer Frage gepostet haben. Mit welchem ​​Paket verwendest du 'mongodb'? –

+0

"jenssegers/mongodb": "^ 2.3" –

Antwort

1

Sie müssen jenssegers/mongodb aktualisieren.

Mit Blick auf https://github.com/jenssegers/laravel-mongodb die Kompatibilität Diagramme zeigt, dass 2.3 nicht erfüllt Laravel 5.3 +.

Der Grund, warum Sie diesen spezifischen Fehler erhalten, liegt daran, dass in Laravel 5.3 eine Änderung am Query Builder vorgenommen wurde, so dass eine Sammlung anstelle eines Arrays zurückgegeben wird. 2.3 von jenssegers/mongodb gibt jedoch nur ein Array zurück. In der Version 3.1 von jenssegers/mongodb gibt es jetzt einen Check um festzustellen, welche Version von Laravel Sie aus diesem Grund verwenden.

Hoffe, das hilft!

+0

Hat dies Ihre Frage @MukeshRawat beantwortet? –

Verwandte Themen