方法as_array()不起作用

时间:2014-03-01 18:40:26

标签: orm

我正在使用idiorm作为ORM库而方法as_array()不起作用这是我的代码我得到2个错误

1- $ market = $ market-> as_array();

PHP致命错误:在非对象

上调用成员函数as_array()

2- - > as_array();

PHP致命错误:在非对象

上调用成员函数as_array()

我的代码:

function ($market = 'affiliate', $category = array('all')) use ($app) {
    $market = \ORM::for_table('category')
        ->where('alias', $market)
        ->find_one();
    $market = $market->as_array();
    $category = @end($category);
    if ($category != 'all') {
        $category = \ORM::for_table('category')
            ->where('alias', $category)
            ->where_gt('category_id', 0)
            ->find_one()
            ->as_array();
        $items = \ORM::for_table('item')
            ->select('item.*')
            ->select('category.name', 'category_name')
            ->join('category', 'category.id = item.category_id')
            ->where('item.category_id', $category['id']);

1 个答案:

答案 0 :(得分:0)

根据Idiorm docs

  

任何以find_one()结尾的方法链都将返回表示您请求的数据库行的ORM类的单个实例,如果未找到匹配的记录,则返回false。

在调用as_array()之前,您应该检查您的查询是否返回了任何行。

例如:

$market = \ORM::for_table('category')
    ->where('alias', $market)
    ->find_one();

if($market != false)
{
    $market = $market->as_array();
}

如果仍然出现错误,那么您可能没有正确初始化Idiorm。