> 백엔드 개발 > PHP 튜토리얼 > laravel4 缓存null值时cache失效

laravel4 缓存null值时cache失效

WBOY
풀어 주다: 2016-06-06 20:38:05
원래의
1127명이 탐색했습니다.

<code>public static function getUserById($id)
{
    $key = sprintf("%s_%s",__METHOD__, $id);

    $mdkey = md5($key);

    var_dump(Cache::tags(self::CACHE_TAG)->has($mdkey));die();

    if(Cache::tags(self::CACHE_TAG)->has($mdkey))
    {
        echo 'has cache';
        return Cache::tags(self::CACHE_TAG)->get($mdkey);
    }

    $user = User::where('uid',$id)->first();

    Cache::tags(self::CACHE_TAG)->put($mdkey, $user, self::CACHE_TIME);

    return $wifi;
}
</code>
로그인 후 복사
로그인 후 복사

<code>在Repository中的has方法定义
/**
 * Determine if an item exists in the cache.
 *
 * @param  string  $key
 * @return bool
 */
public function has($key)
{
    return ! is_null($this->get($key));
}
</code>
로그인 후 복사
로그인 후 복사

如果缓存保存的值时null时,has都会返回false,如何区分用户保存的null和cache无保存时的null呢?

回复内容:

<code>public static function getUserById($id)
{
    $key = sprintf("%s_%s",__METHOD__, $id);

    $mdkey = md5($key);

    var_dump(Cache::tags(self::CACHE_TAG)->has($mdkey));die();

    if(Cache::tags(self::CACHE_TAG)->has($mdkey))
    {
        echo 'has cache';
        return Cache::tags(self::CACHE_TAG)->get($mdkey);
    }

    $user = User::where('uid',$id)->first();

    Cache::tags(self::CACHE_TAG)->put($mdkey, $user, self::CACHE_TIME);

    return $wifi;
}
</code>
로그인 후 복사
로그인 후 복사

<code>在Repository中的has方法定义
/**
 * Determine if an item exists in the cache.
 *
 * @param  string  $key
 * @return bool
 */
public function has($key)
{
    return ! is_null($this->get($key));
}
</code>
로그인 후 복사
로그인 후 복사

如果缓存保存的值时null时,has都会返回false,如何区分用户保存的null和cache无保存时的null呢?

"\0"之类的占位符代替null

관련 라벨:
php
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿