首页 > 解决方案 > 将外部服务器的 Post 数据保存到 Laravel

问题描述

我想将发布到回调 URL 的信息保存到 Laravel 数据库。我在 api.php 文件中创建了一个控制器和一个路由,但未保存发布的信息。当我在公共文件夹中创建一个 PHP 文件时,信息正在保存,但我希望它通过控制器。请让我知道我需要做什么来保存信息。

路线:Route::post('/receivesms', 'MessageController@stk');

控制器:

namespace App\Http\Controllers;

use App\Message;
use Illuminate\Http\Request;

class MessageController extends Controller
{
    public function stk(Request $req){

        $message = new Message();
        $message->sender = $req->input('from');
        $message->recipient = $req->input('to');
        $message->message = $req->input('message');
        $message->date_sent = $req->input('date');
        $message->message_id = $req->input('id');
        $message->link_id = $req->input('linkId');
        $message->save();

        return view('welcome');
    }
}

发布的信息如here所述。发布的数据是;

 $from = $_POST['from'];
 $to = $_POST['to'];
 $text = $_POST['text'];
 $date = $_POST['date'];
 $id = $_POST['id'];
 $linkId = $_POST['linkId']; 

标签: laravel-5

解决方案


当您将路线放入api.php文件api中时,路线中的前缀会自动参考此链接Laravel Routing

因此,如果您的 laravel 应用程序正在运行,https://example.com那么Route::post('/receivesms', 'MessageController@stk');将转换为https://example.com/api/receivesms

因此,请确保您的回调包含api前缀,它应该可以工作。

一切顺利

ķ


推荐阅读