問題
在本機實作關鍵字搜尋功能時,透過 form表單傳參數給 Controller
網址格式 domain.tw/article?keyword=123
Controller 接收
$request->query(‘keyword’);
$request->input(‘keyword’);
在本機實作都可以接收到,但是在正式機卻都是 null
解決
後來發現問題出現在 Nginx 中
錯誤
1 2 3 4 5 6 7
| location / { try_files $uri $uri/ /index.php$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
|
正確
1 2 3 4 5 6 7
| location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; }
|
發現哪裡不一樣了嗎?
不知道何時,複製的範本Nginx index.php?
$query_string 卻少了一個?
參考網址: https://laracasts.com/discuss/channels/laravel/query-strings-not-passing-to-controller-anything-based-on-get-not-working