我有这个Backbone App,我使用Codeigniters
Restful API。我有这个功能,我从MySQL数据库中获取Artistnames
。现在,我的API给了我这样的结果:
{"artist_name" : "Queens of the stone age"}
我想要实现的是我得到的名字是/queensofthestoneage
。我怎样才能做到这一点?
My Backbone View看起来像这样:
function (App, Backbone) {
var Artistname = App.module();
Artistname.View = Backbone.View.extend({
template: 'artistname',
initialize: function() {
this.listenTo(this.collection, 'all', this.render)
},
serialize: function() {
return this.collection ? this.collection.toJSON() : [];
}
});
Artistname.ArtistnameCollection = Backbone.Collection.extend({
url: function() {
return '/project/ci/index.php/api/artistchannel/artistname/' + this.artist_id;
}
});
return Artistname;
}
我的Codeigniter / API MySQL查询如下所示:
public function a_artists_get()
{
$this->load->database();
$sql = "SELECT formated_name FROM `artists` WHERE formated_name LIKE 'A%'";
$query = $this->db->query($sql);
$data = $query->result();
if($data) {
$this->response($data, 200);
} else {
$this->response(array('error' => 'Couldn\'t find any artists with letter a!'), 404);
}
}
欢迎任何帮助!
提前致谢...
答案 0 :(得分:0)
假设您在谈论服务器端,在PHP中,您可以使用str_replace()
删除空格,或preg_replace()
使用正则表达式删除任何空格。然后在将数据转换为JSON之前使用strtolower()
转换为小写:
echo strtolower(preg_replace("/\s+/", '', "Queens of the Stone Age"));
echo strtolower(str_replace(" ", '', "Queens of the Stone Age"));
如果你可以保证MySQL中的数据中出现的所有空格(例如没有回车),那么str_replace()
就是更快的方式。否则,我可能会使用正则表达式方法,因为它会删除所有空格。