我收到此错误"试图获取非对象的属性"对于行
'price' => $product->product_price,
'name' => $product->product_name
在同一页面中进行
function remove($rowid) {
$this->cart->update(array(
'rowid' => $rowid,
'qty' => 0
));
}
我可以解决这个问题,通过这样做,'price' => $product['product_price'],
总线作为我的其他页面使用'price' => $product->product_price
它们就好了,所以我不想将它转换为数组,
我的问题是如何将$this->cart->update(array(
转换为对象,以便这些行
'price' => $product->product_price,
'name' => $product->product_name
对象效果如何?
提前致谢。
答案 0 :(得分:0)
$Arr = array(
'rowid' => $rowid,
'qty' => 0
);
$Obj = (object)$Arr;
这是将Array转换为Object。你想要吗?
答案 1 :(得分:0)
您将结果分配给数组。然后尝试将数组用作对象。接下来,返回的结果也是一个数组,您尝试将其用作对象。
您可以将数组转换为对象的更智能方法
来自PHP手册:
<?php
// assuming $var is a multidimensional array
$obj = json_decode (json_encode ($var), FALSE);
?>
小天才黑客:
<?php
$array = array(
// ...
);
$object = (object) $array;
?>
因此您可以通过将数组转换为对象进行转换:
<?php
$object = object;
foreach($arr as $key => $value)
{
$object->{$key} = $value;
}
?>
如果您需要手动方式,则可以执行此操作:
//gulp.js in the root folder
var elixir = require('laravel-elixir');
var browserify = require('browserify');
elixir(function(mix) {
mix.sass(['app.scss'], 'public/css');
});
elixir(function(mix) {
mix.browserify(['app.js'], 'public/js');
});
答案 2 :(得分:0)
将$ product定义为新的标准类:
$product = new stdClass();