2016-05-12 11 views
0

私は、クラスのユーザーでメソッドを使用するためのルートを定義しようとしています。 index.phpの中Slim 3ルーティングが機能しない

私はこれを持っている:

dependencies.phpで
$app->post('/user', '\Users:getUsers'); 

私が持っている:

$container['\Users'] = function ($container) { 

return new Users($container->get('ci')); 

}; 

そして、私のクラスで私が持っている:

class Users { 

protected $ci; 
//Constructor 
public function __construct(ContainerInterface $ci) { 
    $this->ci = $ci; 
} 
public function getUsers(){ 

    $ci = $this->ci; 
    $settings = require __DIR__ . '/../../src/settings.php'; 
    $user = $app = new \Slim\App($settings); 

      $userList =$this->db->table('tbl_test')->get(); 
      $output = array("data" => $userList); 
      return json_encode($output); 

    } 
} 

し、エラーを私は持っているクラス 'ユーザー'が見つかりません

理由は何ですか?

+0

「ユーザー」はどこで定義されていますか? 'index.php'と' dependencies.php'でどのように利用できるようにしますか? – alexw

+0

私は 'require'で試しましたが、私は2度宣言していたのでエラーが出ました。だから私は '名前空間 'で試していますが、それでも動作しません。 @geggletoのように –

+0

は、確かにComposerを使ってオートローディングを調べています。あなたの人生を楽にします。ボーナスポイントについては、クラスと名前空間の[PSR-4仕様](http://www.php-fig.org/psr/psr-4/)に従ってください。 [This](http://phpenthusiast.com/blog/how-to-autoload-with-composer)は実際にはかなり良いチュートリアルです。 – alexw

答えて

1

ユーザークラスはプロジェクトのどこにも定義されていません。 dependencies.phpのあなたの使い方から来ている可能性があります

あなたはオートローディングを使用しているようには見えないので、あなたの実行のどこかにクラスを入れるステートメントが含まれていることを確認してください。

クラスにはPSR-4ネームスペースを使用する必要があります。

+0

私はそれをインポートしていましたが、私はそれを再宣言していたので、それは私にエラーをもたらしました。だから、名前空間も試してみましたが、これもうまくいきませんでした。 –

関連する問題