我的php应用程序遇到了问题.我正在构建一个应该连接到我们的ERP(选择线)的服务应用程序.
但我无法创建一个COM对象.这段代码:
<?PHP
error_reporting(E_ALL);
session_start();
date_default_timezone_set('Europe/Zurich');
echo time();
$obj = new COM("fd6c8b29-e936-4a61-8da6-b0c12ad3ba00") or die("Unable to instantiate Word");
echo "Loaded Word, version {$word->Version}\n";
?>
Run Code Online (Sandbox Code Playgroud)
归还给我:
致命错误:在第21行的C:\ xampp\htdocs\com.php中
我有两个环境:
Server 2008 R2 + Xampp v3.1.0 | PHP 5.4.7
Server 2012 R2 + Xampp v3.1.0 | PHP 5.4.7
我不得不在php.ini中添加php_com_dotnet.dll,因为我之前找不到COM类.
由于我是COM的新手,我不知道在哪里搜索失败.
愿你们帮帮我吧.
提前致谢
我改变了我的代码:
try {
$obj = new COM("word.application") or die("Unable to instantiate Word");
} catch (Exception $e) {
echo $e->getMessage() . "\n";
}
Run Code Online (Sandbox Code Playgroud)
现在我得到:
无法创建COM对象`word.application':语法无效
我没有弄到什么问题.根据这篇文章http://www.php.net/manual/en/class.com.php,不需要额外的参数,对吧?
我有以下关系:
客户 -> hasMany(合同)
现在我想要获取所有客户,包括具有给定条件的所有合同:
$c = Customer::with('contracts','contracts.service','contracts.contractpos')
->whereHas('contracts', function ($query) {
$query
->where('invoice_next','=',$this->invoice_next)
->groupBy('customer_id');
})
->orderBy('company')
->get();
Run Code Online (Sandbox Code Playgroud)
但是,我得到了所有拥有满足条件的合同的客户 (invoice_next = $this->invoice.next ),但也得到了所有不符合条件的合同。
因此,过滤客户是可行的,但随后我会获得所有客户合同,而不仅仅是到期的合同。我哪里犯了错误?
子查询中的“where”条件似乎只适用于客户,但不能过滤子查询(合同)。
感谢您提供正确方向的任何提示。
问候 eXe