[英]laravel middleware array_key_exists() error
我的中間件代碼
php 版本 5.6.32-1
<?php
namespace App\Http\Middleware;
use Session, Closure;
class AuthLogin
{
public function handle($request, Closure $next)
{
if (!Session::has('account')) {
return redirect('/admin/login');
}
return $next($request);
}
}
我得到這個錯誤
array_key_exists():第一個參數應該是字符串或整數
它怎么了?
我的 mac 上沒有任何錯誤,但它發生在我的 linode 服務器上
由於以下原因,您收到此錯誤:
$arr = [[0] => 10,[1] => 20,[2] => 30,[3] => 40,[4] => 50];
假設您搜索值10或30
$ k = array_search('10',$ arr);
現在$ k會保留[0]
如果這樣做
array_key_exists($ k,$ arr);
您將得到array_key_exists():第一個參數應該是字符串或整數,因為$ ki,e 0被視為布爾值而不是字符串或整數,但是如果我們搜索了30,則不會發生此問題。
對於遇到此問題的任何人,我通過使用以下方法清除配置緩存來解決此問題:
php artisan config:clear
或者您也可以使用命令(這將清除應用程序中的所有緩存,包括路由、配置、視圖和應用程序緩存):
php artisan optimize:clear
這就是我檢查會話是否存在的方式:
public function handle($request, Closure $next)
{
if (!$request->session()->exists('session_name')) {
return redirect('/');
}
return $next($request);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.