2017-02-02 10 views
0

я получаю эту ошибку:вызов функции члена все() на массиве в Laravel

FatalErrorException in Builder.php line 485:

Call to a member function all() on array

мой регистр контроллера

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

Это не имеет никакого отношения к контроллеру, который вы разместили с вашим вопросом. Какой пакет вы используете, чтобы вы могли использовать 'mongodb'? –

+0

"jenssegers/mongodb": "^ 2.3" –

ответ

1

Вам необходимо обновить jenssegers/mongodb.

Глядя на https://github.com/jenssegers/laravel-mongodb, диаграммы совместимости показывают, что 2.3 не удовлетворяет требованиям Laravel 5.3+.

Причина, по которой вы получаете эту ошибку, связана с тем, что в Laravel 5.3 было внесено изменение в построитель запросов, чтобы он возвращал коллекцию вместо массива, однако 2.3 из jenssegers/mongodb просто возвращает массив. В версии 3.1 из jenssegers/mongodb теперь есть проверка, чтобы определить, какую версию Laravel вы используете по этой причине.

Надеюсь, это поможет!

+0

Это ответ на ваш вопрос, @MukeshRawat? –