Php Slim 3框架和带有Ajax的Twig GET和POST用于主页聊天的问题?
这是我第一次问有关StackOverflow的问题。如果你犯了错误,首先我要道歉 我正在使用slim 3框架制作一个在线商店。我需要为我的slim 3项目使用Ajax进行实时聊天。但我不能那样做。请告诉我怎么做 routes.phpPhp 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
$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返回部分错了!看到这个实时评论系统了吗?非常感谢。我现在就试试