1

次のような CodeIgniter のコントローラーに関数があります。

public function age($var = null) 
{
    $data = $this->mongo_db
        ->where('age', $var)
        ->get('users');

    echo "<pre>";
    print_r($data);
    echo "</pre>";
}

http://www.siteurl.com/controller/age/25に移動すると、年齢が 25 のすべてのドキュメントが返されるはずですが、データが返されません。

クエリを以下に修正すると、正常に動作します...

public function age($var = null) 
{
    $data = $this->mongo_db
        ->where('age', 25)
        ->get('users');

    echo "<pre>";
    print_r($data);
    echo "</pre>";
}

おそらく非常に単純なことですが、私は codeigniter を初めて使用し、何が問題なのかわかりません!

どんな助けでも大歓迎です。前もって感謝します!

4

3 に答える 3

3

この 2 つの違いは$var、整数ではなく文字列であることだけです。これを今すぐテストすることはできませんが、アレックスのライブラリに渡す前に、変数を整数に型キャストする必要があると思われます。

$data = $this->mongo_db
    ->where('age', (int) $var)
    ->get('users');
于 2012-05-04T14:26:03.570 に答える
0

これを試して:

public function age($var = false) 
{
    if ($var) {
       $data = $this->mongo_db
           ->where('age', $var)
           ->get('users');

       echo "<pre>";
       print_r($data);
       echo "</pre>";
    }
}
于 2012-05-04T13:22:37.720 に答える
0

ルートを設定しましたか?このようなものを設定に入れます

$route['controller/age/(:num)'] = "controller/age/$1";
于 2012-05-04T13:28:33.843 に答える