45

私はLaravelが初めてで、一般的にPHP名前空間を使用しています。File という名前のモデルを作成することを決定するまで、何の問題もありませんでした。ファイル モデル クラスを使用できるように、名前空間を正しく設定するにはどうすればよいですか?

ファイルはapp/controllers/FilesController.phpapp/models/File.php. で新しく作ろうとしていFileますFilesController.php

4

5 に答える 5

91

名前空間は、そのコツをつかめば非常に簡単です。

次の例を見てください。

app / models / File.php

namespace App\Models;

class File {

    public function someMethodThatGetsFiles()
    {

    }
}

app / controllers / FileController.php

namespace App\Controllers;

use App\Models\File;

class FileController {

    public function someMethod()
    {

        $file = new File();
    }
}

名前空間を宣言します。

namespace App\Controllers;

PHPの組み込みクラスにアクセスするために名前空間にクラスを配置したら、ルート名前空間からそれらを呼び出す必要があることを忘れないでください。例:$stdClass = new stdClass();になります$stdClass = new \stdClass();(を参照\

他の名前空間を「インポート」する:

use App\Models\File;

これによりFile、名前空間プレフィックスなしでクラスを使用できるようになります。

または、次の電話番号に電話することもできます。

$file = new App\Models\File();

ただしuse、コードをスキャンしなくてもファイルのすべての依存関係を確認できるため、ステートメントの先頭に配置することをお勧めします。

composer dump-autoloadそれが完了したら、新しく追加したクラスを考慮に入れるために、Composerの自動ロード機能を更新するためにそれらを実行する必要があります。

URLを介してFileControllerにアクセスする場合は、ルートを定義し、次のように完全な名前空間を指定する必要があることを忘れないでください。

Route::get('file', 'App\\Controllers\\FileController@someMethod');

これにより、すべてのGET/fileリクエストがコントローラーに送信されます。someMethod()

名前空間に関するPHPのドキュメントをご覧ください。この記事では、Nettutが常に優れたリソースです。

于 2013-02-06T22:01:31.090 に答える
4

まず、クラスを次のようにロードします。

$ composer dump-autoload

それから

$file = new File;

// your stuff like:
$file->name = 'thename';
$file->active = true;

$file->save();

セクション: Laravel 4 Eloquent のドキュメントの挿入、更新、削除

于 2013-02-05T23:01:04.633 に答える
2

モデルに名前を付けるには、開いた直後のモデルクラスの上部に

次に、コントローラーから呼び出すと、新しいWhatever\Modelが呼び出されます。

おそらく、初めて composer で dump-autoload を実行する必要があります。

于 2013-02-06T12:37:16.100 に答える
0

それを見てください..うまくいけば、クエリがクリアされます....

<?php

 namespace app\controllers;
 use yii\web\Controller;
 use app\models\users;
  class UserController extends Controller{
 public function actionIndex()
 {
echo "working on .....";
}
}
于 2015-08-28T06:58:55.470 に答える