2017-03-03 5 views
0

せずに、私は "がUserController" ファイル持って、直接モデルのクラスの静的メソッドを使用して:だから"USE" キーワード

Route::post('users', ['uses' => '[email protected]']);

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\User; 

class UsersController extends Controller 
{ 

    public function store(Request $request) { 
     User::create($request->all()); 
     return "user added"; 
    } 

} 

を "店舗" の方法は、 "POST" の要求に対応します今、私は "ユーザー"ページにPOSTデータを送信すると、DBの "ユーザー"テーブルに新しいユーザーを追加します。

[OK]を、これは動作しますが、このようなメソッドを使用して "作成" してみてください、この行を削除した場合、私は疑問についてuse App\User;

を持っている:Class 'App\Http\Controllers\App\User' not found

public function store(Request $request) { 
    App\User::create($request->all()); 
    ... 

はエラーになります質問は、なぜ "ユーザー"クラスの静的メソッド "create"を直接このように使うことができないのです:

App\User::create($request->all())

+1

によってあなたの

App\User::create($request->all()); 

を交換::($要求 - >すべての())を作成します。 –

答えて

4

のApp \ユーザー\

\App\User::create($request->all()); 
+0

ありがとう、働いて、はるかに理解しています。つまり、 'use'キーワードは常にルートフォルダを探しますか? – RIKI

+1

これはルートフォルダに関するものではないので、 'use'キーワードは絶対名前空間ディレクトリを使います。例えば、' App'が '/ root/directory/subdirectory /'を参照している場合などです。このフォルダから直接クラスを使用しています。 – hassan