Laravel 5中所有路线的POST控制器

时间:2016-08-27 21:26:13

标签: laravel-5

我的网页标题中有回拨按钮,因此用户可以从每个页面向我发送消息。

如何为此制作路线?这样的事情:

Route::post('{*}', 'PostController@callback');

3 个答案:

答案 0 :(得分:0)

使用中间件,以便检查某些后期数据的每个请求。 我会这样做:在App \ Http \ Middleware \

目录中创建一个名为MessageMiddleware.php的文件
<?php namespace App\Http\Middleware;

use Closure;

class MessageMiddleware {
    public function handle($request, Closure $next) {
        if(isset($_POST['internal_message'])) {
            // Do something so the message reaches you (db, email, whatever)
        }
        return $next($request);
    }
}
?>

这只是一个非常基本的版本,但应该给你一个想法。 您不必为此注册任何路由,中间件将适用于中间件注册的所有URL。

如果您希望在对应用程序的每个HTTP请求期间运行中间件,只需在app / Http / Kernel.php类的$ middleware属性中列出中间件类App \ Http \ Middlware \ MessageMiddleware。

适用于Middlware的官方Laravel文档非常广泛,当然不仅涵盖身份验证中间件。

答案 1 :(得分:0)

如果您通过ajax进行此操作会更好。

答案 2 :(得分:0)

做一些尝试并检查我发现最简单的路线允许从每个页面发送回叫请求!

Route::get('/', ['as' => 'home', 'uses' => 'HomeController@index']);
Route::post('/', ['as' => 'callback', 'uses' => 'PostController@callback']);

但我不知道为什么。如果有人知道为什么请告诉我,因为我真的想知道背景 正如我所知,我还试图使用中间件来做这件事。这也是有效的解决方案。消息是从每个页面发送的,但是有消息我每次都在控制台中收到403错误代码。当然,我试图摆脱这一点。 使用这个简单的解决方案,它在控制台中没有任何错误。