【问题标题】:Laravel create model outside app namespace [duplicate]Laravel在应用程序命名空间之外创建模型[重复]
【发布时间】:2020-06-03 19:00:30
【问题描述】:

我想使用命令php artisan make:model User 在域文件夹中创建用户。尽管如此,它最终会出现在 App 文件夹中。

我已经试过了:

  • php artisan make:model Domain\User
  • php artisan make:model Domain\\User
  • php artisan make:model \\Domain\\User
  • php artisan make:model Domain/User

应用文件夹:

app
 |    
 +-- App
 |
 |    
 +-- Domain
 |
 |    
 +-- Http

作曲家文件:

"autoload": {
    "psr-4": {
      "App\\": "app/App/",
      "Domain\\": "app/Domain/",
      "Http\\": "app/Http/",
      "Support\\": "app/Support/"
    },

更新

php artisan make:model ../Domain/User 解决了模型的问题。我仍然有控制器php artisan make:controller ../Http/UserController

的问题

【问题讨论】:

    标签: php laravel laravel-5.8 laravel-artisan


    【解决方案1】:

    不确定为什么需要在默认位置之外创建模型。

    Artisan make 命令将尝试根据您运行的命令将文件存储在标准位置。

    例如,php artisan make:model User 将在app 目录(模型的默认目录)中创建模型。因此,假设您的模型所需的目标是上面的一个目录并且名称为 Domain,您可以运行以下命令:

    php artisan make:model ../Domain/User
    

    请注意,../Domain/ 是相对于该命令的默认位置。

    对于一个控制器,知道默认目录是app/http/Controller 并且你想在Domain/http/Controller 中生成一个控制器,你可以使用以下命令来完成:

    php artisan make:controller ../../../Domain/Http/UserController

    请注意,这不正常,不符合标准。

    Hape 可以帮助您实现目标

    【讨论】:

    • 感谢这工作。命名空间不正确,但没关系
    • 需要在哪里创建控制器?
    • 在我的 Http 文件夹中。我也尝试在我的域文件夹中创建一个,但文件进入 App 文件夹。
    • 看看我更新的答案。希望对您有所帮助。
    【解决方案2】:

    在 Laravel 5.4 或更高版本中。您可以如下创建

      php artisan make:model "Domain\User"
    

    使用 "(双引号)或 '(单引号)创建模型

    看这里

    artisan make:model specify the directory and namespace?

    【讨论】:

    • 不,这对我不起作用。结果还是一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 2015-03-06
    • 2017-01-07
    • 2013-02-12
    • 2015-04-12
    • 2020-06-10
    相关资源
    最近更新 更多