我是PHP和Laravel的新手。 我正在使用Laravel Framework版本" laravel / framework":" 5.4。*"和PHP 7。
我正在构建多级身份验证。
我一直关注https://www.youtube.com/watch?v=P8T3MjZPDdI Alexander Curtis视频。
我得到的错误是:
PHP Parse错误:语法错误,意外' $ login' (T_VARIABLE)在第68行的app / Exceptions / Handler.php中
$login = 'admin.login';
[Mon May 8 20:53:30 2017] PHP致命错误:在第0行的未知状态下没有堆栈帧抛出异常
代码是https://github.com/DevMarketer/multiauth_tutorial/archive/part_3.zip
多次仔细检查我使用Laravel方式进行身份验证,而不是任何外部程序包。 website / admin / login显示空白页面。
webserver也是php artisan serve。
我遇到了这个错误。
<?php
namespace App\Exceptions;
use Exception; use Illuminate\Auth\AuthenticationException; use
Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
class Handler extends ExceptionHandler {
/**
* A list of the exception types that should not be reported.
*
* @var array
*/
protected $dontReport = [
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
];
/**
* Report or log an exception.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
{
parent::report($exception);
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
/**
* Convert an authentication exception into an unauthenticated
* response.
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Auth\AuthenticationException $exception
* @return \Illuminate\Http\Response
*/
添加了多个登录部分的代码的第二部分
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
$guard = array_get($exception->guards(),0);
switch ($guard) {
case 'admin':
# code...
$login = 'admin.login';
break;
default:
# code...
$login ='login';
break;
}
return redirect()->guest(route($login));
}
}
答案 0 :(得分:0)
您忘记删除默认的崇高文字建议: 因此,在$ login声明之前删除“#code ...”。
switch ($guard) {
case 'admin':
*# code...*
$login = 'admin.login';
break;
default:
*# code...*
$login ='login';
break;
}