關於『Node Sass version 6.0.0 is incompatible with^4.0.0』解法

之前在 Laravel 使用 sass 的時候,遇到錯誤訊息 Node Sass version 6.0.0 is incompatible with^4.0.0 ,查了一下,問題的原因,其實就是 node-sass 6.0.0版本和 ^4.0.0 不兼容

閱讀全文 關於『Node Sass version 6.0.0 is incompatible with^4.0.0』解法

在 Laravel 中建立動態 navbar

我們網站常常會在上方會有一個 navbar ,有時候會需要去抓取資料庫動態的資料來顯示。

但是我們又不可能在每個 Controller 去寫這段程式,然後在放到 blade ,這樣真的太暴力,而且往後也不好維護。所以我們可以利用 AppServiceProvider 來達成這件事情

閱讀全文 在 Laravel 中建立動態 navbar

PHP 噴錯『 SSL certificate error: unable to get local issuer certificate』解決方法

在寫 Laravel 的時候,有時候會需要請求外部的 request ,如果請求的是 https ,就有可能會噴出 SSL certificate error: unable to get local issuer certificate

閱讀全文 PHP 噴錯『 SSL certificate error: unable to get local issuer certificate』解決方法

在 formData 表單送出 PUT、PATCH 或 DELETE 方法

HTML 表單再送請求的時候,是沒有支援 PUTPATCH 或 DELETE 這三種 method 的。所以在定義由 HTML 表單所呼叫的 PUTPATCH 或 DELETE 路由時,會需要在表單中增加一個隱藏的欄位: _method 

閱讀全文 在 formData 表單送出 PUT、PATCH 或 DELETE 方法

在 Mac OS 上面安裝 Laradock 筆記

之前在虛擬機上面開發 Laravel ,但是虛擬機得去要完整模擬一台主機,所以整個映像檔非常大,也因為這樣很多人都開始轉用 Docker。

在這篇文章中,我會紀錄如何使用 Docker 這項技術來建置 PHP/Laravel 的開發環境,未來要開發 Laravel 的時候,只要把 Laradock 運行起來就可以了。

閱讀全文 在 Mac OS 上面安裝 Laradock 筆記

Laravel 如何清理快取

有時候更新了程式碼,但是沒辦法即時看到結果,這是由於該應用程式被快取所導致。這裡記錄了一些清理快取的方法

  1. 清理應用程式快取  :php artisan cache:clear
  1. 清理路由快取:php artisan route:clear
  1. 清理設定快取:php artisan config:clear
  1. 清理編譯的視圖文件:php artisan view:clear
 

Laravel 使用 env 函式讀取環境變數為 null 的問題

在 Laravel 專案中,如果執行了 php artisan config:cache 命令把配置檔案快取起來後,在使用 env 函式讀取環境變數的值,會變成 null,但是執行 php artisan config:clear,清除配置快取後,又可以讀取了,就覺得很奇怪

看了一下,得知在 Laravel 中,如果執行 php aritisan config:cache 命令後,Laravel 就會把 app/config 目錄下的所有配置檔案快取到 bootstrap/cache/config.php 裡面。正因為有了這個快取配置檔案,在其他地方使用 env 函式,就會讀取不到環境變數,所以返回 null.

接著看一下 Illuminate/Foundation/Bootstrap/DetectEnvironment.php 的這段程式碼:

 

public function bootstrap(Application $app) {
    if (! $app->configurationIsCached()) {
        $this->checkForSpecificEnvironmentFile($app);
        try {
            (new Dotenv($app->environmentPath(), $app->environmentFile()))->load();
        } catch (InvalidPathException $e) {
            //
        }
    }
}

 

這個方法在框架啟動後就會執行,這段程式碼說明了如果存在快取配置檔案,就不會去設定環境變數了

,配置都讀快取配置檔案,而不會再讀環境變數了。因此,如果做快取,一旦執行 php artisan config:cache 之後,env 函式就不起作用了