Ошибка исключения Неопределенное смещение: 1

#php #laravel

#php #laravel

Вопрос:

Я новичок в php. При изучении и написании некоторого кода я столкнулся с этой ошибкой «ErrorException Неопределенное смещение: 1». Вот коды, которые я отредактировал, что привело к этой ошибке:

WELCOME.BLADE.PHP


    @section ('title')
welcome!
@endsection


@section ('content')
@if(count($errors)>0)
<div class = "row">
    <div class= "col-md-6">
        <ul>
            @foreach ($errors->all()as $error)
                <li>{{$error}}</li>
            @endforeach
        </ul>
    </div>
</div>
@endif
<div class = "row">
    <div class = "col-md-6">
        <h3> Sign Up </h3>
        <form action ="{{route ('signup')}}" method = "post">
          <div class = "form-group">
                <label for= "email"> your E-mail </label>
                <input class = "form-control" type="text" name = "email" id= "email">
          </div>
          <div class = "form-group">
                <label for= "first_name"> your first name </label>
                <input class = "form-control" type="text" name = "first_name" id= "first_name">
          </div>
          
          <div class = "form-group">
                <label for= "password"> your password </label>
                <input class = "form-control" type="password" name = "password" id= "password">    
          </div>
          <button type = "submit" class = "btn btn-primary">submit</button>
        <input type = "hidden" name = "_token" value="{{Session::token() }}">
        </form>
                
</div>
<div class = "col-md-6">
    <h3> Sign In </h3>
        <form action = "{{route ('signin')}}" method = "post">
          <div class = "form-group">
                <label for= "email"> your E-mail </label>
                <input class = "form-control" type="text" name = "email" id= "email">
          </div>
          
          
          <div class = "form-group">
                <label for= "password"> your password </label>
                <input class = "form-control" type="password" name = "password" id= "password">    
          </div>
          <button type = "submit" class = "btn btn-primary">submit</button>    
          <input type = "hidden" name = "_token" value="{{Session::token() }}">
        </form>
                
    </div>
@endsection
  

USER_CONTROLLER.PHP

   <?php
namespace AppHttpControllers;

use Appuser;
use IlluminateHttpRequest;
use IlluminateSupportFacadesAuth;

class UserController extends Controller {
    
    public function getDashboard()
    {
        return view('dashboard');   
        
    }
    
    public function postSignUp(Request $request){
       
        $this->validate($request, [
            'email' => 'required|email|unique:users',
            'first_name'=> 'required|max:120',
            'password'=> 'required|min:4'
        ]);
        $email = $request ['email'];
        $first_name = $request ['first_name'];
        $password = bcrypt($request ['password']);
        
        $user = new user();
        $user -> email = $email;
        $user -> first_name = $first_name;
        $user -> password = $password;
        
        $user -> save();
        Auth::login($user);
        return redirect() -> route('dashboard');
        
        
    }

    public function postSignIn (Request $request){
        
        if(Auth::attempt(['email'=> $request['email'], 'password' => $request['password']])) {
          return redirect()->route ('dashboard');
        }
        
        return redirect()->back(); 
    }

}


?>
  

Вот трассировка стека ошибки, которую я получаю от laravel каждый раз, когда пытаюсь загрузить страницу:

 C:xampphtdocsLARAVELLARAVELvendorlaravelframeworksrcIlluminateViewCompilersConcernsCompilesLoops.php:95

















    protected function compileFor($expression)

    {

        return "<?php for{$expression}: ?>";

    }


    /**

     * Compile the for-each statements into valid PHP.

     *

     * @param  string  $expression

     * @return string

     */

    protected function compileForeach($expression)

    {

        preg_match('/( *(.*)  as *(.*))$/is', $expression, $matches);

 

        $iteratee = trim($matches[1]);

 

        $iteration = trim($matches[2]);

 

        $initLoop = "$__currentLoopData = {$iteratee}; $__env->addLoop($__currentLoopData);";

 

        $iterateLoop = '$__env->incrementLoopIndices(); $loop = $__env->getLastLoop();';

 

        return "<?php {$initLoop} foreach($__currentLoopData as {$iteration}): {$iterateLoop} ?>";

    }

 

    /**

     * Compile the break statements into valid PHP.

     *

     * @param  string  $expression

     * @return string
  

Комментарии:

1. В какой строке / файле ошибка?

2. Я думаю, что предоставленного вами кода недостаточно, чтобы найти проблему, поскольку для меня все выглядит хорошо, вам нужно будет предоставить нам страницу ошибок, которую предоставляет Laravel, и все функции.

3. Но в любом случае эта ошибка связана с проблемой попытки доступа к неопределенному индексу в некотором списке

4. @SherifTarek Спасибо за усилия, которые помогли мне решить мою проблему. Я предоставил больше информации о коде.

5. Вам нужно добавить пробел после ->all() в @foreach($errors->all() as $error) . Регулярное выражение не может быть проанализировано ()as так, как оно ожидает () as

Ответ №1:

добавьте пробел после ->all() в foreach цикле вашего файла balde и добавьте $request->all() в свою функцию проверки.