Phoenix框架1.2中有一个models文件夹,但是在1.4版中吗?
在1.2版中,models目录位于app-> web中。检查整个文件夹结构模型后,文件夹不存在。
答案 0 :(得分:1)
如果使用 "name": "WebUIFinal",
"type": "project:application",
"bundler": {
"id": "webpack",
"displayName": "Webpack"
},
"build": {
"options": {
"server": "dev",
"extractCss": "prod",
"coverage": false
}
},
"platform": {
"id": "aspnetcore",
"displayName": "ASP.NET Core",
"port": 8080,
"hmr": false,
"open": false,
"output": "wwwroot/dist"
},
"loader": {
"id": "none",
"displayName": "None"
},
"transpiler": {
"id": "typescript",
"displayName": "TypeScript",
"fileExtension": ".ts"
},
"markupProcessor": {
"id": "minimum",
"displayName": "Minimal Minification",
"fileExtension": ".html"
},
"cssProcessor": {
"id": "none",
"displayName": "None",
"fileExtension": ".css"
},
"editor": {
"id": "none",
"displayName": "None"
},
"unitTestRunner": [
{
"id": "jest",
"displayName": "Jest"
}
],
"integrationTestRunner": {
"id": "protractor",
"displayName": "Protractor"
},
"paths": {
"root": "src",
"resources": "resources",
"elements": "resources/elements",
"attributes": "resources/attributes",
"valueConverters": "resources/value-converters",
"bindingBehaviors": "resources/binding-behaviors"
},
"testFramework": {
"id": "jasmine",
"displayName": "Jasmine"
}
}
,您仍将获得旧的项目结构以及models文件夹。但是,自Phoenix 1.3.0发布以来,默认项目结构已更改。使用新命令WebUIFinal/
├── wwwroot/
│ └── dist/
│ ├── index.html
│ ├── 0.chunk.js
│ ├── ...
│ ├── vendor.bundle.js
│ └── app.bundle.js
├── aurelia-project/
│ └── aurelia.json
├── src/
│ ├── app.ts
│ └── main.ts
├── package.json
└── webpack.config.js
(plus a bunch of other stuff, of course -- this is just what I deemed relevant)
,我们可以看到不再有专用的模型文件夹。
在该版本中,Phoenix引入了上下文:专用模块,用于公开和分组相关功能。模型将不再进入单个模型文件夹,而是将根据其功能分为不同的上下文模块。
有关更多信息,请参见此处的1.3.0版本博客文章(“上下文”部分):https://phoenixframework.org/blog/phoenix-1-3-0-released
答案 1 :(得分:1)
1.2之后,Phoenix停止使用类似Rails的Public Sub ChangeSheetNames()
Dim lLastRow As Long
With Worksheets(1)
lLastRow = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Worksheets.Count
If .Cells(i, 1).Value <> "" Then Worksheets(i).Name = .Cells(i, 1).Value
Next
End With
End Sub
语法和设计;相反,生成这些资源后,Phoenix现在将数据模型分为models
和ORM函数分为schemas
。
Phoenix的目录结构也更改为> = 1.3;现在,您的主要应用程序模块都位于contexts
中,./lib/
中包含与Web和数据库无关的(方案,上下文)模块,而{{1中则包含面向Web的模块(控制器,视图等) }}。
如果您在项目中运行./lib/appname/
,则生成器将生成./lib/appname_web/
目录,其中包含名为mix phx.gen.context Accounts User users email:string username:string
的文件,该文件包含您的用户./lib/appname/accounts/
和{{1} }和名为/accounts/user.ex
的文件,其中包含与用户架构相关的数据库CRUD逻辑。
在TGO的答案中查看更改日志,并在the official Phoenix docs about Contexts中查看有关Phoenix当前Context设计的更清晰图片