当前位置: 首页 > 知识库问答 >
问题:

count():参数必须是在laravel中实现Countable的数组或对象

文英达
2023-03-14

请帮我解决这个问题,当我运行这段代码时,出现错误计数():参数必须是一个数组或一个对象,当我想获得no_st时实现可数

public function get_no_st(Request $request){

        $no_org = null;
        $tgl    = $request->tgl ?: date('Y-m-d');
        $tgl    = Helper::saveDateIndo( $tgl );
        $max_no_st = $request->max_no_st ?: null;

        if ( $request->org == 'KPA'){
            $no_org = 'KPA.MBU';
        }else if ( $request->an ) {
            $no_org = $this->organisasi->select('kode_surat_atas_nama', 'kode_surat')->where('id', $request->org)->first();
            $no_org = ( count($no_org) > 0
                        ? ( trim($no_org->kode_surat_atas_nama) != null ? $no_org->kode_surat_atas_nama : $no_org->kode_surat )
                        : @$no_org->kode_surat );
        } else {
            $no_org = $this->organisasi->select('kode_surat')->where('id', $request->org)->first();
            $no_org = (count($no_org) > 0 ? $no_org->kode_surat : null);
        }

        if(!$max_no_st) {
            $max_no_st = $this->model->select('no_st_increment');
            if ( $request->org == 'KPA') {
                $max_no_st = $max_no_st->where('is_kpa', true);
            } else {
                $max_no_st = $max_no_st->where('pt_organisasi_id', $request->org);
            }
            if ( $tgl )
            {
                $max_no_st  = $max_no_st->where(DB::raw('EXTRACT( YEAR FROM tgl_awal )'), date('Y', strtotime($tgl)) );
            }
            $max_no_st  = $max_no_st->max('no_st_increment') + 1;
        }

        $no_st      = 'ST-'.$max_no_st.'/'.($no_org ?: '-').'/'.date('n/Y', strtotime( $tgl ));

        return $no_st;
    }

共有3个答案

钱稳
2023-03-14

这是因为您使用的是PHP版本和Laravel版本。

读这里

您可以将结果转换为数组。

$no_org = ( count((array)$no_org)
...
韦睿
2023-03-14

根据错误消息,您是不能实现可数的东西。

<代码>-

<代码>-

但是,您只需要找到organisi的一个对象,这样您就可以使用empty()如下所示:

empty($no_org)
西门伟
2023-03-14

您试图对对象类型数据进行计数,但只能对数组进行计数。如果仍要计算对象的属性,只需将该对象强制转换为数组即可。这样地:

count((array) $no_org);

这将返回$no_org的属性总数;

 类似资料: