我是这个websocket的初学者,我正在为我的第一个项目尝试这个棘轮.
我已经在http://socketo.me中通过在命令提示符中执行此命令完成了安装教程
composer require cboden/ratchet
之后,它会自动生成vendor一个包含几个库的文件夹,并在主路径a composer.json和composer.lock
然后我创建了一个chat.php文件并从棘轮git上的快速示例中复制了代码:
<?php
use Ratchet\MessageComponentInterface;
use Ratchet\ConnectionInterface;
// Make sure composer dependencies have been installed
require __DIR__ . '/vendor/autoload.php';
/**
* chat.php
* Send any incoming messages to all connected clients (except sender)
*/
class MyChat implements MessageComponentInterface {
protected $clients;
public function __construct() {
$this->clients = new \SplObjectStorage;
}
public function onOpen(ConnectionInterface $conn) {
$this->clients->attach($conn);
}
public function onMessage(ConnectionInterface $from, $msg) {
foreach ($this->clients as …Run Code Online (Sandbox Code Playgroud) 我在返回对我发出的 ajax 请求的正确响应时遇到问题。
基本上,我有一个checkbox当changed()触发 ajax 并被csrf-token接受时POST method,数据库上反映的更改是成功的,但在将进程的“状态”返回到 ajax 时开始出现错误。
这是我的控制器方法:
public function update(Request $request, $id)
{
$result = ItemPrice::toggleRestockable($id);
return $result;
}
Run Code Online (Sandbox Code Playgroud)
$result的输出是DB::update() method
无论查询是否成功,ajax 都会error:阻塞。Internal Server Error 500
ajax中的ofresponseText变量data主要是:
(1/1) UnexpectedValueException
The Response content must be a string or object implementing __toString(), "boolean" given.
Run Code Online (Sandbox Code Playgroud)
现在我知道我正在返回boolean或从技术上讲是一个整数,因为它的结果是DB::update()返回受update.
现在我怎样才能正确返回 ajax 可以理解的响应呢?
首先,我的引擎是 innoDB,我已经在 mySQL 上尝试了以下操作:
BEGIN;
INSERT INTO `tbl_users`(...) VALUES (...)
ROLLBACK();
Run Code Online (Sandbox Code Playgroud)
它工作正常,这意味着问题不在我的 mysql 配置中。
但是当我在 Laravel 模型上尝试这个时:
public static function addNew($request, $department_id) {
$result = array();
$now = Carbon::now();
DB::beginTransaction();
//Checking for existing Order to set appropriate starting ID
$result = DB::select("
SELECT COUNT(`id`) AS 'count'
FROM `tbl_consignmentorders`
")[0];
if($result->count == 0){
DB::update("ALTER TABLE `tbl_consignmentorders` AUTO_INCREMENT = 70000000001;");
}
try {
//INSERT
DB::insert("
INSERT INTO `tbl_consignmentorders`
(`from`, `to`, `status`, `created_at`, `updated_at`)
VALUES
(?, ?, ?, ?, ?)",
[
$department_id,
strtoupper($request->input('supplier')), …Run Code Online (Sandbox Code Playgroud) laravel ×2
ajax ×1
composer-php ×1
database ×1
javascript ×1
laravel-5.5 ×1
php ×1
ratchet ×1
transactions ×1
websocket ×1