我会先说这是一个糟糕的程序员,我确信我想做的事情可以在10行节点或Rails或其他东西中完成,但PHP就是我所拥有的.
所以,我希望找到一个简单的PHP库,它将数据库调用包装在一个类似于RESTful模型的API中.
我试图找到这样的东西我没什么成功 - 搜索PHP CRUD或PHP REST翻开几个页面,我不知道如何过滤它们.
我真的想在这里保持简单,我不想要像Zend这样的大框架.我在Backbone中处理的模型非常简单.我只是想送GETs到,比方说,/notes/3或POSTs到/notes,等,并有PHP做正确的事情到数据库.
也许我问的太多了,但在我看来,这就像Rails提供的其他框架一样.有什么建议?TIA ...
为了尊重REST原则的最佳实践,最好是在POST/PUT上返回创建/更新的实体吗?或者使用Location标头返回一个空的HTTP主体?
更确切地说,当POST创建资源时,我们应该返回:
当资源由PUT更新时,我们应该返回:
我真的很喜欢和SailsJS(http://sailsjs.org)合作.特别是因为它自动生成RESTful CRUD API.但是,为小客户工作,我并不总是有机会在NodeJS环境中工作.他们的webapps主要运行在Apache(PHP/MySQL)服务器上.
我的问题:是否有任何框架提供自动生成的RESTful CRUD API?如果没有,自己编写它的最佳方法是什么?
我知道处理路由的框架,但是我正在寻找能够自动生成CRUD API的东西(基于蓝图或链接到数据库表).
为了加快开发过程并保持代码清洁,我也喜欢ORM.如果我可以将自动生成的API链接到ORM架构/蓝图,那就太好了.那么再一次,最好的方法是什么?
我找不到任何提供此功能的框架.希望你们能帮助我.
提前致谢!
丹尼斯
module.js:340
throw err;
^
Error: Cannot find module './models/todo'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\Users\Basel\Desktop\Todo List\routes\api.js:1:74)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
C:\Users\Basel\Desktop\Todo List>
Run Code Online (Sandbox Code Playgroud)
为什么这个应用程序无法启动?我已经尝试过全局的npm安装.
我不明白有什么问题。我试图用一个非常简单的模型在 .net core mvc 中制作一个简单的 crud,该模型几乎没有字段。
这些是我的模型:
public class Employee
{
[Key] public int EmployeeId { get; set; }
[Required] public string FistName { get; set; }
[Required] public string LastName { get; set; }
public int PositionId { get; set; }
public virtual Position Position { get; set; }
}
public class Position
{
[Key]
public int PositionId { get; set; }
public string PositionName { get; set; }
public ICollection<Employee> Employees { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我制作了应用程序上下文:
public …Run Code Online (Sandbox Code Playgroud) 我必须在MySQL数据库上用PHP做一些数据库请求.
问题:什么是最好的(最简单的)框架来完成正确的CRUD(创建读取更新删除)?
我还必须填充数据库,这是一个很好的工具.我认识的唯一一个是SqlMyAdmin,看起来并不好看.在线工具会很棒.
您的经验很有价值:告诉我您使用了什么以及为什么?
我看了看CodeIgniter,看起来不错,你觉得怎么样......矫枉过正?
我想在创建用户时专门设置一个字段.我有
class RegistrationsController < Devise::RegistrationsController
def create
super
@user.tag_list = params[:tags]
end
end
Run Code Online (Sandbox Code Playgroud)
我有传递tags参数的复选框,我已在服务器日志中验证了tags参数是否正在传递.但是,当我在控制台中调用@ user.tag_list时,我只得到一个空白的响应[].
我觉得问题在于我操纵设计的创造方法.我没有明确地在任何地方设置@user,但我不确定如何使用Devise设置它.有人在使用设计时知道如何设置特定字段吗?
我正在尝试在Shiny中实现CRUD工作流程(创建/读取/更新/删除)来管理数据库记录.看来Shiny默认不支持这种工作流程,所以我想知道是否有一种干净的方法来实现这一点.
为了缩小问题的范围,我很难将静态链接添加到指向特定tabPanel的记录表中以编辑相应的记录.
这是一个模型示例,可以更轻松地解决此问题.
ui.R
library(shiny)
shinyUI(navbarPage("Example",
tabPanel("Event List",
sidebarLayout(
sidebarPanel(list(
p("If you click the link, it should go to the edit event panel."),
p("But it's not...")
), align="left"),
mainPanel(
h3("Event List"),
tableOutput('testTable'),
dataTableOutput('events_table'),
align="center"))),
tabPanel("Edit Event", id='edit',
sidebarLayout(
sidebarPanel(
uiOutput("choose_event_id"),
align="center"),
mainPanel()
)),
id='top'
))
Run Code Online (Sandbox Code Playgroud)
server.R
library(shiny)
shinyServer(function(input, output, session) {
output$choose_event_id <- renderUI({
selectizeInput("event_id", "Event", width='100%',
choices=c(1,2,3), selected=1)
})
output$testTable <- renderTable({
require(xtable)
table <- xtable(data.frame(A=1,B='<a href="LINK-HERE">test</a>'))
table
}, sanitize.text.function = function(x) x)
})
Run Code Online (Sandbox Code Playgroud)
LINK-HERE部分是我想弄清楚的.每次重新启动应用程序时,tabPanels链接都会更改,因此在这种情况下静态链接不起作用.
第二个问题是传递要在URL中编辑的记录的ID,但如果需要,可以留下后续问题.我将尝试通过使用此SO问题的答案来实现这一目标:
提前致谢.
我正在使用MongoDB 3.2和MongoDB Java Driver 3.2.我有一个包含数百个更新文档的数组,现在应该保存/存储在MongoDB中.为了做到这一点,我迭代数组并调用此数组中的每个文档的updateOne()方法.
现在,我想通过批量更新重新实现此逻辑.我试图在MongoDB 3.2中使用MongoDB Java Driver 3.2找到批量更新的示例.
我试过这段代码:
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = (DB) mongo.getDB("test1");
DBCollection collection = db.getCollection("collection");
BulkWriteOperation builder = collection.initializeUnorderedBulkOperation();
builder.find(new BasicDBObject("_id", 1001)).upsert()
.replaceOne(new BasicDBObject("_id", 1001).append("author", "newName"));
builder.execute();
Run Code Online (Sandbox Code Playgroud)
但似乎这种方法基于过时的MongoDB Java驱动程序,例如2.4并使用不推荐的方法.
我的问题:
如何使用MongoDB Java Driver 3.2在MongoDB 3.2中执行批量更新文档?
我想为用户设置CRUD,仅适用于我的Web应用程序的管理员.所以在routes.rb中:
namespace :admin do
resources :user
end
Run Code Online (Sandbox Code Playgroud)
这意味着:
admin_user_index GET /admin/user(.:format) admin/user#index
POST /admin/user(.:format) admin/user#create
new_admin_user GET /admin/user/new(.:format) admin/user#new
edit_admin_user GET /admin/user/:id/edit(.:format) admin/user#edit
admin_user GET /admin/user/:id(.:format) admin/user#show
PUT /admin/user/:id(.:format) admin/user#update
DELETE /admin/user/:id(.:format) admin/user#destroy
Run Code Online (Sandbox Code Playgroud)
显示,索引工作正常,但编辑和新的不.我一直在_form第一行得到这个错误:
#<#的未定义方法`user_path':0x007fb6645c6378>
这是这样的:
如何将form_for与命名空间资源一起使用?
crud ×10
php ×3
mongodb ×2
rest ×2
.net ×1
backbone.js ×1
bulkinsert ×1
c# ×1
devise ×1
form-for ×1
frameworks ×1
java ×1
json ×1
migration ×1
mysql ×1
namespaces ×1
node.js ×1
overriding ×1
persistence ×1
principles ×1
r ×1
routes ×1
sails.js ×1
shiny ×1
web-services ×1