我将Laravel项目从一台服务器迁移到另一台服务器,除了下面的特定代码段(以下只是示例代码)之外,一切正常:
$test_obj = [
(object) [
'name' => 'name1',
'value' => 'value1',
],
(object) [
'name' => 'name2',
'value' => 'value2',
],
];
$first = (object) $test_obj->{0};
echo $first->name;
独立php命令上的错误消息:
关于Laravel的错误消息:
奇怪的是,相同的用法在以前的服务器上可以正常工作(相同的php和laravel版本)。有人可以为此提供可能的解释和解决方案吗?
答案 0 :(得分:1)
您打给我时
$first = (object) $test_obj->{0};
PHP将其更改为对象后将调用$ test_obj-> {0}
所以有错误
Trying to get property of non-object on line number 14
$first
对象应该为null并导致
Undefined property: stdClass::$0
我尝试使用此
$first = ((object) $test_obj)->{0};
但是它仅适用于7.2.x版本的PHP。 希望对您有所帮助。
答案 1 :(得分:-1)
请勿使用 Select * from ( Select customer, RANK() OVER(partition by customer_id Order by transaction_date) firsttransaction From table_name ) Where firsttransaction=1
尝试使用echo
来调试此类问题。看来这不是一个对象,可能是一个对象数组。