Php Slim 3框架和带有Ajax的Twig GET和POST用于主页聊天的问题?

Php Slim 3框架和带有Ajax的Twig GET和POST用于主页聊天的问题?,php,ajax,slim-3,Php,Ajax,Slim 3,这是我第一次问有关StackOverflow的问题。如果你犯了错误,首先我要道歉 我正在使用slim 3框架制作一个在线商店。我需要为我的slim 3项目使用Ajax进行实时聊天。但我不能那样做。请告诉我怎么做 routes.php $app->get('/',['Cart\Controllers\HomeController','index'])->setName('home'); $app->post('/',['Cart\Controllers\HomeControlle

这是我第一次问有关StackOverflow的问题。如果你犯了错误,首先我要道歉

我正在使用slim 3框架制作一个在线商店。我需要为我的slim 3项目使用Ajax进行实时聊天。但我不能那样做。请告诉我怎么做

routes.php

$app->get('/',['Cart\Controllers\HomeController','index'])->setName('home');
$app->post('/',['Cart\Controllers\HomeController','postindex'])->setName('posthome');
HomeController.php

<?php

namespace Cart\Controllers;

use Slim\Views\Twig;
use Slim\Router;
use Cart\Models\Send_msg;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request ;

public function postindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

{
    $this->router = $router;

    Send_msg::Create([
        'send_msg' => $request->getParam('send_msg'), 
        'user_id' => $_SESSION['user']
        ]);    

    $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get()->toArray();

    return $response->withRedirect($this->router->pathFor('home'));

}


public function index(Request $request, Response $response, Twig $view, Send_msg $send_msg)
    {
        $this->router = $router;
        $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get()->toArray();

        return $view->render($response, 'home.twig', [ 
            'send_msg' => $send_msg, 
        ]);
    }
    <?php

    namespace Cart\Controllers;

    use Slim\Views\Twig;
    use Slim\Router;
    use Cart\Models\Send_msg;
    use Psr\Http\Message\ResponseInterface as Response;
    use Psr\Http\Message\ServerRequestInterface as Request ;

public function getindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

        {
            $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get();
            return $response->withJson($send_msg);
        }

public function postindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

        {
            $this->router = $router;

                Send_msg::Create([
                'send_msg' => $request->getParam('send_msg'), 
                'user_id' => $_SESSION['user']
                ]);   

            return $response->withRedirect($this->router->pathFor('home'));
        }

我试过这个。它起作用了

Router.php

$app->get('/',['Cart\Controllers\HomeController','index'])->setName('home');
$app->post('/',['Cart\Controllers\HomeController','postindex'])->setName('posthome');
$app->get('/data',['Cart\Controllers\HomeController','getindex'])->setName('gethome');
HomeController.php

<?php

namespace Cart\Controllers;

use Slim\Views\Twig;
use Slim\Router;
use Cart\Models\Send_msg;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request ;

public function postindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

{
    $this->router = $router;

    Send_msg::Create([
        'send_msg' => $request->getParam('send_msg'), 
        'user_id' => $_SESSION['user']
        ]);    

    $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get()->toArray();

    return $response->withRedirect($this->router->pathFor('home'));

}


public function index(Request $request, Response $response, Twig $view, Send_msg $send_msg)
    {
        $this->router = $router;
        $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get()->toArray();

        return $view->render($response, 'home.twig', [ 
            'send_msg' => $send_msg, 
        ]);
    }
    <?php

    namespace Cart\Controllers;

    use Slim\Views\Twig;
    use Slim\Router;
    use Cart\Models\Send_msg;
    use Psr\Http\Message\ResponseInterface as Response;
    use Psr\Http\Message\ServerRequestInterface as Request ;

public function getindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

        {
            $send_msg = $send_msg->where('user_id', $_SESSION['user'])->get();
            return $response->withJson($send_msg);
        }

public function postindex(Request $request, Response $response, Router $router, Send_msg $send_msg) 

        {
            $this->router = $router;

                Send_msg::Create([
                'send_msg' => $request->getParam('send_msg'), 
                'user_id' => $_SESSION['user']
                ]);   

            return $response->withRedirect($this->router->pathFor('home'));
        }

您可以使用该库进行实时聊天

您需要在成功函数中的Get ajax部分的div中返回结果。示例
success:function(data){$('#result').html(data);}
并在html中显示数据
我尝试了,但没有成功。即使我需要在ajax成功部分中显示警报,我也无法工作。我想我在homecontroller返回部分错了!看到这个实时评论系统了吗?非常感谢。我现在就试试