在Laravel 4中使用名称空间

我是Laravel的新手,一般使用PHP命名空间。 我没有遇到任何问题,直到我决定做一个名为文件的模型。 我将如何正确地使用命名空间,以便可以使用我的File模型类?

这些文件是app/controllers/FilesController.php app/models/File.phpapp/models/File.php 。 我正在试图在FilesController.php创build一个新的File

命名空间很容易,一旦你得到它的挂钩。

以下面的例子:

应用程序/模型/ File.php

 namespace App\Models; class File { public function someMethodThatGetsFiles() { } } 

应用程序/控制器/ 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的自动加载function,以考虑您新添加的类。

请记住,如果你想通过URL访问FileController,那么你需要定义一个路由并像下面这样指定完整的命名空间:

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

这将把所有GET /文件请求引导到控制器的someMethod()

看看命名空间上的PHP文档,Nettut的这篇文章总是很好的资源

首先,加载你的类:

 $ composer dump-autoload 

然后

 $file = new File; // your stuff like: $file->name = 'thename'; $file->active = true; $file->save(); 

部分:插入,更新,删除Laravel 4雄辩的文档

在命名空间中,在开始之后,在模型类的顶部

然后,当你从控制器呼叫,你会打电话给新的Whatever \ Model;

你可能不得不第一次和composer php一起做自转加载。

看看它..希望将清除您的查询….

 <?php namespace app\controllers; use yii\web\Controller; use app\models\users; class UserController extends Controller{ public function actionIndex() { echo "working on ....."; } }