gpt4 book ai didi

mysql - Ember 数据路由/映射到 MySQL 数据库

转载 作者:行者123 更新时间:2023-11-29 04:23:05 25 4
gpt4 key购买 nike

我一直在努力理解这个概念,我花了很多时间研究它,但我一无所获。

我在廉价主机 (one.com) 上有一个 MYSQL 数据库。我在上述数据库中创建了一个表,现在我希望我的 Ember 应用程序从中获取所有条目。

我该如何实现?据我了解,ember-data 尝试从特定项目 URL 获取信息。但是如何将我的数据库条目映射到相应的 URL?

我不能直接在服务器上安装任何软件,因为我不拥有它。虽然有对 PHP 的支持。使用 PHP,我可以轻松检索所有数据库条目,并使用 ember-data 要求的正确格式将它们编码为 JSON,但我不知道下一步该做什么。

www.myurl.com/blog/js/app.js

App = Ember.Application.create();

// data storage -----------------------------------------------------

App.Store = DS.Store.extend({
revision: 12,
adapter: DS.RESTAdapter.create({
url: 'http://www.myurl.com/blog'
})

});

// routers, routes --------------------------------------------------

App.Router.map(function() {
this.resource('contact');
this.resource('items', { path: "/items/" });
this.resource('item', { path: "/items/:item_id"});
this.resource('hearts');
this.resource('tags');
});

App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('items');
}
});

App.ItemsRoute = Ember.Route.extend({
model: function() {
return App.Item.find();
}
});

App.ItemRoute = Ember.Route.extend({
model: function(params) {
return App.Item.find(params.item_id);
}
});

// controllers --------------------------------------------------------

App.ItemsController = Ember.ArrayController.extend({
// ...
});

App.ItemController = Ember.ObjectController.extend({
// ...
});

// model -----------------------------------------------------------

App.Item = DS.Model.extend({
tag: DS.attr('string'),
title: DS.attr('string'),
posted: DS.attr('date'),
updated: DS.attr('date'),
intro: DS.attr('string'),
full: DS.attr('string'),
visible: DS.attr('number')
});

www.myurl.com/blog/items/index.php

$host = "myhost";
$usr = "myuser";
$pwd = "mypwd";
$db= "mydb";

$connect = mysql_connect("$host", "$usr", "$pwd", "$db") or die("errormsg");

mysql_select_db("$db", $connect) or die("errormsg");

$sql = "SELECT * FROM mytable";

$result = mysql_query($sql);

$rows = array();

if(mysql_num_rows($result)){
while($row=mysql_fetch_assoc($result)) {
$rows['post'][]=$row;
}
}

print(json_encode($rows));

mysql_close($db);

最佳答案

看来您已经完成了大部分工作,下一步是尝试并进行一些调试。

第一步:确保您的 API 以 ember 期望的方式返回 JSON。从 javascript 控制台尝试这样的事情:

$.getJSON("/items").then( function(response) {
console.log("response: ", response);
});

响应应该是项目列表。是吗?

第二步:查看 ember-data 是否能够使用 api 获取项目。所以从控制台尝试:

App.Item.find({}).then( function(items) {
console.log("item count: ", items.get('length'));
console.log("items: ", items.getEach('id'));
});

关于mysql - Ember 数据路由/映射到 MySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137185/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com