Backbone.js Как использовать с PHP - PullRequest
18 голосов
/ 02 июня 2011

Я изучал backbone.js и не могу понять, как заставить его общаться с php для сохранения данных моделей.Он отправляет запрос, но как мне перехватить этот запрос, будь то «Создать», «Обновить», «Читать», «Удалить» и т. Д.

Спасибо

Ответы [ 4 ]

15 голосов
/ 17 июня 2012

Другой вариант, который вы можете рассмотреть, - использовать готовую среду RESTful, в которой есть все необходимые функции для выполнения запросов вашего Backbone-сервера.Мой личный фаворит - SlimPHP Framework Джоша Локхарта .

Несколько простых примеров кода (после настройки SlimPHP), используемых для того, чтобы ваши вызовы Backbone выглядели так:* Вот пример POST, который превращает Backbone json в массивы.

// 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.
}

А вот DELETE.

$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-сервере.Отлично подходит для прототипирования.Объедините его со слоем абстракции БД и некоторыми другими инструментами, и вы сможете сделать все, что захотите, быстрее.

Ниже вы можете увидеть еще один пример кода:

  1. Как отправить модель Backbone на сервер
  2. Способы сохранения данных Backbone

А вот ссылка на некоторые другие RESTful-решения на основе PHP: Рамочный список

8 голосов
/ 02 июня 2011

Модель backbone.js использует определенные URL для извлечения и отправки данных.Вы должны убедиться, что там был вызван php-скрипт.

Теперь есть две возможности.

Во-первых, метод отправляется внутри $ _POST в качестве дополнительной переменной.Во-вторых, вам нужно искать используемый метод запроса (GET, POST, PUT, DELETE), который вы можете использовать с помощью $_SERVER['REQUEST_METHOD']

Теперь вы можете использовать простые операторы if-else или switch для обработки запроса и доставкинеобходимые данные, как я думаю, JSON.

3 голосов
/ 02 июня 2011

$ GLOBALS ['HTTP_RAW_POST_DATA'] отлично работает для меня, я не знаю, по какой причине print_r ($ _ POST) не печатает анифинг !!

2 голосов
/ 24 апреля 2013

В вашем php-скрипте у вас будет это для методов PUT и DELETE, поскольку вы можете фильтровать их с помощью: $_SERVER['REQUEST_METHOD']

parse_str(file_get_contents("php://input"),$post_vars);

Если запрос POST или GET, вы можете использовать его как обычно, но если запрос PUT или DELETE, используйте строку выше и вы можете получить доступ к переменным с помощью:

$post_vars['fruit'] for example...

Когда вы готовы ответить на магистраль, вам нужно всего лишь сначала сделать правильный заголовок:

header('Content-type: application/json; charset=utf-8');

и закодируйте ответ с помощью json:

echo json_encode(array("message"=>"missing fields","status"=>200));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...