

お世話になっております。  
リクエストパラメータが取得できず困っております。

設定に不足があるのだと思っております。  
アドバイスをいただけましたら幸いです。

# 質問

URLに直打ちしたリクエストパラメーターを取得したい

[http://example.com/hello?id=番号](http://example.com/hello?id=%E7%95%AA%E5%8F%B7)
<= 取得できない  
[http://example.com/hello/番号](http://example.com/hello/%E7%95%AA%E5%8F%B7) <=
取得できた（※１）

# やったこと

「Laravel入門 」書籍を参考に基本動作を学習しています。

/routes/web.phpファイル

[code]

    Route::get('hello', 'HelloController@index');
    // Route::get('hello/{id?}', 'HelloController@index'); //　idが取得できる（※１）
    
[/code]

/app/Http/Controllers/HelloController.phpファイル

[code]

    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    
    class HelloController extends Controller
    {
        //
      public function index(Request $request)
      {
        // var_dump($request->id); // <= NULLになってしまう
        // exit();
         if (isset($request->id))
         {
            $param = ['id' => $request->id];
            $items = DB::select('select * from people where id = :id',
               $param);
         } else {
            $items = DB::select('select * from people');
         }
         return view('hello.index', ['items' => $items]);
      }
    
    }
    
[/code]

# 参考テキスト

「PHPフレームワーク Laravel入門 Page.185 リスト5-7」  
ISBN987-4-7980-5258-8

# 動作環境：

OS：Raspbian GNU/Linux 9 (stretch)  
WEBサーバー：nginx version: nginx/1.10.3  
PHPバージョン：PHP 7.2.9-1 (cli) (built: Aug 19 2018 06:56:13) ( NTS )  
Laravelバージョン：  
$ php artisan -V  
Laravel Framework 5.5.42

よろしくお願いします。  
kaz_dev

# 修正箇所

nginxの設定の記述ミスを修正しました。  
修正前）  
try_files $uri $uri/ /index.php?query_string;  
修正後）  
try_files $uri $uri/ /index.php?$query_string;

/etc/nginx/sites-available/defaultファイル

[code]

    # Laravel ver5.5
            location / {
                    root /var/www/path/to/public;
                    # First attempt to serve request as file, then
                    # as directory, then fall back to displaying a 404.
                    #try_files $uri $uri/ =404;
                    index index.php index.html index.htm;
                    try_files $uri $uri/ /index.php$query_string;
            }
    
            # pass PHP scripts to FastCGI server
            #
            location ~ \.php$ {
            #location ~ [^/]\.php(/|$) {
                    root /var/www/path/to/public;
                    # CORS start
                    add_header Access-Control-Allow-Origin *;
                    add_header Access-Control-Allow-Methods "POST, GET, OPTIONS";
                    add_header Access-Control-Allow-Headers "Origin, Authorization, Accept";
                    add_header Access-Control-Allow-Credentials true;
                    # CORS end
            #       include snippets/fastcgi-php.conf;
            #
            #       # With php-fpm (or other unix sockets):
                    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
            #       # With php-cgi (or other tcp sockets):
            #       fastcgi_pass 127.0.0.1:9000;
                    fastcgi_index  index.php;
                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                    include fastcgi_params;
            }
    
[/code]


CC BY-SA 4.0
2018-09-05T01:51:22.017
48092
2018-09-14T01:41:56.240
2018-09-14T01:41:56.240
15346
15346
question
php laravel-5 url-routing
Laravel5.5 でURL直打ちのリクエストパラメーターを取得したい