關於laravel 5.3 使用redis緩存出現 找不到Class 'Predis\Client' not found的問題

昨天使用5.3.版本的laravel框架開發公司新項目,

發現將cache和session設置爲了redis,執行了一下首頁訪問。

如圖:laravel

 

 laravel 版本號redis

 

簡單配置一下控制器路由,json

Route::get('home', 'HomeController@index');
Route::get('/', 'HomeController@index');
怎麼配置控制器就不細說了。

說問題重點了(敲黑板!!!!!):

訪問出現錯誤!!!
說找不到一個類:找不到Class 'Predis\Client' not
found

查了查源碼,發現少了一個vendor/目錄下少了一個包predis,
執行:composer require predis/predis 安裝這個包就好
注:版本<5.3能夠成功解決問題。>5.3的,失敗!

控制檯錯誤信息以下:

Updating dependencies (including require-dev)
Failed to decode response: zlib_decode(): data error
Retrying with degraded mode, check https://getcomposer.org/doc/articles/troubleshooting.md#degraded-mode for more info
Your requirements could not be resolved to an installable set of packages.session

Problem 1
- The requested package laravel/passport (locked at v1.0.0, required as 1.0.8) is satisfiable by laravel/passport[v1.0.0] but these conf
lict with your requirements or minimum-stability.
Problem 2
- Installation request for laravel/passport 1.0.8 -> satisfiable by laravel/passport[v1.0.8].
- laravel/passport v1.0.8 requires symfony/psr-http-message-bridge ^0.3.0 -> satisfiable by symfony/psr-http-message-bridge[v0.3] but th
ese conflict with your requirements or minimum-stability.composer


Installation failed, reverting ./composer.json to its original content.框架

 


中文翻譯:【更新的依賴(包括須要開發)
沒法解碼的迴應:zlib_decode():數據錯誤
重試與降級模式,檢查HTTPS:/ / getcomposer。org /文件/物品/故障排除。MD #降級模式的更多信息
你的要求不可能解決,對包的安裝設置。
問題1
-請求的包laravel /護照(鎖定在V1.0.0,需經過laravel 1.0.8)/護照[ V1.0.0 ]但這些配置可知足
衝突與您的要求或最小穩定。
問題2
安裝要求laravel /護照1.0.8 ->知足由laravel /護照[┊]。
- laravel /護照/ PSR symfony┊須要HTTP消息橋^ 0.3.0┊->知足由symfony / PSR HTTP消息橋[ V0.3 ]但
這些衝突與您的要求或最小穩定。
安裝失敗,回覆到原來的內容。/ composer.json。】ui

 

解決方法:[]中括號中爲可選項spa

修改 項目Composer.json文件 + 刪除Composer.lock +[執行composer clearcache] + [執行composer update] +執行:composer require predis/predis翻譯

 

 

 

這個錯誤,我調試了好久,網上沒找到解決方法,因此花了不少時間才解決,具體是什麼緣由,我也不能亂說。調試

總結一下錯誤緣由:

  1. 使用redis纔會報錯,若是你項目中沒用用系統提供的redis方法,就不會遇到。
  2. 版本問題,只要laravel 5.3.*纔有這個問題,由於之前版本均可以直接執行composer require predis/predis 解決。
  3. predis 官網維護沒有及時更新 致使新版laravel 出現 請求的包laravel /passport (鎖定在V1.0.0,需經過laravel 1.0.8)/passport [ V1.0.0 ]
  4. 還麼想到,但願你們知道的補充,,,,,

 

先這樣吧,但願能幫到遇到一樣問題的同道。

 

原創博客,轉載請註明出處!!!謝謝

 

====MING

相關文章
相關標籤/搜索