2014-06-25 2 views
-1

Далее следует scotch.io учебнику для следующего приложения GitHub: https://github.com/scotch-io/laravel-angular-comment-appПопытки передать GET или POST данных в Laravel комментируя заявление

После окончания урока, интересно, если можно передать информацию через URL к предназначенное для применения в Laravel. Я задал этот вопрос на сайте, но ответы в лучшем случае медленны.

Вот моя информация о маршруте ...

URI: POST api/comments 

Name: api.comments.store 

Action: [email protected] 

Вот мой CommentController код:

<?php 
// app/controllers/CommentController.php 

class CommentController extends \BaseController { 

    /** 
    * Send back all comments as JSON 
    * 
    * @return Response 
    */ 
    public function index() 
    { 
     return Response::json(Comment::get()); 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @return Response 
    */ 
    public function store() 
    { 
     Comment::create(array(
      'author' => Input::get('author'), 
      'text' => Input::get('text') 
     )); 

     return Response::json(array('success' => true)); 
    } 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return Response 
    */ 
    public function destroy($id) 
    { 
     Comment::destroy($id); 

     return Response::json(array('success' => true)); 
    } 

} 

вход для этого приложения является формой, но я заинтересован в регистрации комментариев от другого источник. Спасибо.

ответ

1

Вы можете сделать это, используя любую библиотеку, такую ​​как cURL, в php, отправив запрос POST с данными вашего сообщения. Но в этом случае обязательно отключите фильтр csrf для этого внешнего запроса к вашему методу store или создайте постоянный токен и сохраните его на стороне тура (где-то, возможно, в базе данных временно до тех пор, пока запрос не будет выполнен), поэтому, если запрос выполняется ваш сгенерированный токен, то вы можете проверить его для проверки (при необходимости). Потому что если у вас есть csrf включен для этого метода, и запрос выполняется из внешнего ресурса без токена (Laravel автоматически генерирует токен для формы при использовании класса Form, чтобы открыть форму), то запрос не может достичь этого метода.

Пример cURL запроса с использованием метода POST с постом данных:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"url of laravel site"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('postvar1' => 'value1'))); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
$server_output = curl_exec ($ch); 
curl_close ($ch); 

Теперь проверьте ответ ($server_output). Если вам нужно передать токен csrf, вам необходимо добавить его в array внутри http_build_query. Это просто основная идея, исследование больше. Также вы можете проверить this answer.

Смежные вопросы