use*_*045 44 php namespaces laravel laravel-4
我是Laravel的新手并且通常使用PHP命名空间.在我决定制作名为File的模型之前,我没有遇到任何问题.我如何正确地进行命名空间,以便我可以使用我的File模型类?
文件是app/controllers/FilesController.php和app/models/File.php.我正在努力创造一个新File的FilesController.php.
Jos*_*way 89
一旦掌握了它,它就很容易命名.
请看以下示例:
应用程序/模型/ File.php
namespace App\Models;
class File {
public function someMethodThatGetsFiles()
{
}
}
Run Code Online (Sandbox Code Playgroud)
应用程序/控制器/ FileController.php
namespace App\Controllers;
use App\Models\File;
class FileController {
public function someMethod()
{
$file = new File();
}
}
Run Code Online (Sandbox Code Playgroud)
声明命名空间:
namespace App\Controllers;
Run Code Online (Sandbox Code Playgroud)
请记住,一旦你在一个Namespace中放置一个类来访问PHP的任何内置类,你需要从Root Namespace中调用它们.例如:$stdClass = new stdClass();将成为$stdClass = new \stdClass();(见\)
"导入"其他命名空间:
use App\Models\File;
Run Code Online (Sandbox Code Playgroud)
这允许您使用File没有Namespace前缀的类.
或者你也可以打电话:
$file = new App\Models\File();
Run Code Online (Sandbox Code Playgroud)
但最好将它放在use语句的顶部,因为您可以在不必扫描代码的情况下查看所有文件的依赖项.
完成后,您需要运行它们composer dump-autoload来更新Composer的自动加载功能,以考虑新添加的类.
请记住,如果您想通过URL访问FileController,那么您需要定义一个路由并指定完整的命名空间,如下所示:
Route::get('file', 'App\\Controllers\\FileController@someMethod');
Run Code Online (Sandbox Code Playgroud)
这会将所有GET /文件请求指向控制器 someMethod()
看看关于命名空间的PHP文档,Nettut总是这篇文章的一个很好的资源
首先,加载您的类:
$ composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
然后
$file = new File;
// your stuff like:
$file->name = 'thename';
$file->active = true;
$file->save();
Run Code Online (Sandbox Code Playgroud)
部分:插入,更新,删除Laravel 4 Eloquent的文档
| 归档时间: |
|
| 查看次数: |
43350 次 |
| 最近记录: |