Laravel5配置Models命名空间

Saturday, January 7, 2017

配置Models目录

laravel5去掉了models目录,新版本将Eloquent的模型User.php放置到app 目录下,但我还是习惯将所有的模型文件统一到Models目录中。

许多初学者都会困惑 Laravel 为什么没有 models 目录,这是有意而为之的。因为 models 这个词对不同人而言有不同的含义,容易造成歧义,有些开发者认为应用的模型指的是业务逻辑,另外一些人则认为模型指的是与数据库的交互。正是因为如此,我们默认将 Eloquent 的模型放置到 app 目录下,从而允许开发者自行选择放置的位置。 —— Laravel5官方文档

  • app目录下创建Models文件夹
  • composer.json->autoload->classmap添加该目录
 "autoload": {
    "classmap": [
        "database",
        "app/Models"
    ],
    ...
 }
  • 修改app/User.php的命名空间为App/Models,并将该文件移动到Models目录中
  • 修改Auth配置文件config/auth.phpUser模型的命名空间
'providers' => [
   'users' => [
       'driver' => 'eloquent',
       'model' => App\Models\User::class,
   ],
   ...
]

添加模型

至此models相关配置就完成了,使用artisan添加模型时命令如下:

#添加国家模型
$ php artisan make:model Models/Country
Laravel Laravel

全新安装Web环境、Composer、LaravelLaravel5导入全球国家简略信息