2017-07-28 8 views
0

を渡される引数にもかかわらず、私はエラーCodeIngiter不足している引数

Missing argument 1 for AdminPanel::viewUser() 

問題は、URL自体はおおよそ次のようになりますということです得続ける:

domain.com/AdminPanel/viewUser/1 

しかし、何らかの理由で、値ではありませんコントローラーにもかかわらず、コントローラーにもかかわらず、

public function viewUser($id) 

デフォルト値をIDを使用すると、URLに渡される値ではなく、デフォルト値のみが使用されます。

+0

コントローラ側でルートとチェック値を設定できます。 –

+0

どのバージョンのCIを使用していますか? – user4419336

+0

@ wolfgang1983は3.1.5を使用しています – Mandemon

答えて

0

コントローラのURLから値にアクセスする場合。あなたは以下を参照routes.phpの上でいくつかの行を言及する必要があります。

$route['Admin/viewUser/(:num)'] = 'Admin/viewUser/$1'; 

それはautomaitcally

+0

動作しません。私はAdminPanel(コントローラの名前)にAdminの部分を変更しましたが、私はまだ同じエラーを取得し続けています。 – Mandemon

+0

コントローラーメソッドを正しく追加してください。 – Madhur

+0

コントローラークラスとファイル名も大文字にする必要があります。 – Madhur

2

は、間違いを発見されましたあなたの方法の$識別のparamsに渡す値を取得します。私が使用していた

function _remap($method_name = 'index') 
    { 
    if(!method_exists($this, $method_name)){ 
     $this->index(); 
    } 
    else{ 
     $this->{$method_name}(); 
    } 
    } 

存在しないメソッドを呼び出そうとすると特定のページにユーザーをリダイレクトします。これを削除し、今すぐ動作します。

-2

paramとして渡す必要はありませんので、uriセグメントとしてご利用ください。 -

ここで、機能から$idを削除します。それは、常にこれをやってみてください、その後

渡されていない場合

+0

これは、コードが再利用されたり、将来URIが変更された場合には悪い考えです。 – Mandemon

0

は清潔で、それがいることを期待しているシンプルな、それはいくつかまたは他の理由のために、関数内で変数を必要とします。

<?php 

public function viewUser($id="") 
{ 
} 
?> 
関連する問題