laravel - 如何在旧的 Whmcs 挂钩上使用 Capsule
问题描述
我已将 Whmcs 从 6 版本升级到 7.7 版本,并希望使用 Laravel 的 Capsule 选项而不是经典的 SQL 语法,但我在执行时遇到了问题。
尝试了 WHMCS 文档,但似乎无法正确获取胶囊数组。
<?php
/** old hook **/
add_hook('AdminClientServicesTabFields', 1, function($vars) {
$PID = $vars['id'];
$result = mysql_query("SELECT name,mid FROM tblping where id = '$PID'");
while ($data = mysql_fetch_array($result)) {
$var1 = $data['name'];
$var2 = $data['mid'];
}
return [
'var1' => $var1 ,
'var2' => $var2,
];
});
<?php
/** new hook **/
add_hook('AdminClientServicesTabFields', 1, function($vars) {
use Illuminate\Database\Capsule\Manager as Capsule;
use WHMCS\Database\Capsule;
$PID = $vars['id'];
$result = Capsule::table(tblping')->select('name','mid')->where->('id', '=', '$PID')->get();
while ($data = mysql_fetch_array($result)) {
$var1 = $data['name'];
$var2 = $data['mid'];
}
return [
'var1' => $var1 ,
'var2' => $var2,
];
});
解决方案
对于任何有兴趣的人,解决方案如下:
use WHMCS\Database\Capsule;
add_hook('AdminClientServicesTabFields', 1, function($vars) {
$PID = $vars['id'];
$result = Capsule::table('tblping')->select('name','mid')->where('id',$PID)->get();
$array= json_decode(json_encode($result), True);
$var1 = $array[0]['name'];
$var2 = $array[0]['mid];
return [ 'var1'=> $var1, 'var2'=> $var2]
});
推荐阅读
- django - 一个模型在 Django 中有 2 个类别。如何在 html 中显示来自同一模型的另一个类别?
- django - Django 处理请求的性能缓慢
- indy - 如果我们在TIdHTTP中尝试以中文为参数执行GET需要什么特殊处理
- javascript - 在 Promise 的动态数组的情况下,如何知道 Promise.all 返回哪个变量
- python - 在 python 中为 Django 设置虚拟环境
- jenkins - Jenkins 脚本化管道 - 带有通配符的分支条件
- flutter - Dart , Flutter 我该如何克服这个错误?我想从地图中获取信息以在此处显示
- r - 比较 2 列或更多列并获取 r 中另一列中的匹配值
- python - 双索引 Pandas 沿两个索引之一移动
- c# - ASP.NET 启用 Cors 但在使用 Angular 访问 API 时 Chrome 中仍然出现 cors 错误