![](/img/trans.png)
[英]How to use backbone.js with php to save data into mysql database
[英]Backbone.js How to use with PHP
我一直在研究backbone.js,我似乎無法弄清楚如何讓它與php通信以保存模型數據。 它發送請求,但如何捕獲該請求,無論是“創建”,“更新”,“讀取”,“刪除”等。
謝謝
您可以考慮的另一個選項是使用預先打包的RESTful框架進行滾動,該框架具有內置的所有必要功能來執行Backbone服務器查詢。 我個人最喜歡的是Josh Lockhart的SlimPHP框架 。
一些簡單的示例代碼(一旦你有SlimPHP設置)用於你的Backbone調用看起來像這樣。
$app->get('/user', function() use ($app) {
// See if session is set, get user info as array
if (isset($_SESSION['userID']) {
$user = // grab user with userID data from DB
}
// Respond to the get request with a json object
$response = $app->response;
$response['Content-Type'] = 'application/json';
$response->body(json_encode($user));
}
這是一個將Backbone json轉換為數組的POST示例。
// Middleware that detects type of data and converts it to something usable
$app->add('Slim_Middleware_ContentTypes'); // JSON to associative array
...
$app->post('/message', function() use ($app) {
$dataIn = $app->request()->getBody();
...
// Save to DB $dataIn['message'], $dataIn['author'], etc.
}
這是一個使用一些參數的PUT示例。
$app->put('/user/:id', function($id) use ($app) {
// Find appropriate user from DB that has $id as ID
$dataIn = $app->request()->getBody();
// Save to DB $dataIn['name'], $dataIn['age'], etc.
}
這是一個刪除。
$app->delete('/message/:id', function($id) use ($app) {
// Find appropriate message from DB that has $id as ID
// Delete message with id of $id
}
雖然這不是所有其他需要考慮的事情的詳盡示例,但它應該讓您了解已經存在的各種開放式解決方案供您使用。 我個人喜歡Slim,因為它非常輕巧,簡單,但它具有RESTful服務器所需的所有功能。 非常適合原型設計。 將它與數據庫抽象層和其他一些工具相結合,您可以更快地制作任何您想要的東西。
您可以在這里看到一些其他示例代碼:
這里有一些基於PHP的RESTful解決方案的鏈接: Framework List
backbone.js的模型使用特定的URL來獲取和發送數據。 你必須確保在那里有一個PHP腳本。
現在有兩種可能性。
首先,該方法作為附加變量在$ _POST內發送。 其次,您必須查找使用的請求方法(GET,POST,PUT,DELETE),您可以使用$_SERVER['REQUEST_METHOD']
現在你可以使用簡單的if-else或switch語句來處理請求並提供所需的數據,就像我認為json一樣。
$ GLOBALS ['HTTP_RAW_POST_DATA']對我來說很好,我不知道為什么print_r($ _ POST)不打印anithing !!
在您的PHP腳本中,您將擁有PUT和DELETE方法,因為您可以使用以下方法對其進行過濾: $_SERVER['REQUEST_METHOD']
parse_str(file_get_contents("php://input"),$post_vars);
如果請求是POST或GET,您可以正常使用它,但如果請求是PUT或DELETE,那么使用上面的行,這樣您就可以訪問vars:
$post_vars['fruit'] for example...
當您准備好回答主干時,您只需要首先制作正確的標題:
header('Content-type: application/json; charset=utf-8');
並編碼你用json回答:
echo json_encode(array("message"=>"missing fields","status"=>200));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.