#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()
в свою функцию проверки.