Как он реализует этот sub-query в laravel? появляется эта ошибка Object of class stdClass could not be converted to string

У меня есть следующий код:

$fac = DB::table('amortizacion')
                  ->select('id_fac_enc')
                  ->where('id_amortizacion','=',$id)
                  ->get();
        $am = DB::table('amortizacion as a')
                ->join('cliente as c','c.id_cliente','a.id_cliente')
                ->select('nombre','nit','direccion','id_fac_enc','saldo')
                ->where('id_amortizacion','=',$id)
                ->get();
        $am2 = DB::table('amortizacion as a')
                ->join('cliente as c','c.id_cliente','a.id_cliente')
                ->select('nombre','nit','direccion','id_fac_enc','saldo')
                ->where('id_fac_enc','=',$fac)
                ->get();

Я пробую делать, что query $ am2, будет брать стоимость, которую возвращает query $fac, но всегда возвращает ошибку, query в mysql просто решается так: select * from амортизация where id_fac_enc = (select id_fac_enc from амортизация where id_amortizacion=1);

0
задан 15.08.2019, 17:47
1 ответ

У меня была похожая ошибка и я нашел одну soluciГіn, оставляю ее aquГ, - если я смог помогать кому-то.

Мое предложение serГ, - чтобы менять консультации из-за:

$fac = DB::table('amortizacion')
                  ->select('id_fac_enc')
                  ->where('id_amortizacion','=',$id)
                  ->pluck('id_fac_enc'); // Cambio get por pluck
        $am = DB::table('amortizacion as a')
                ->join('cliente as c','c.id_cliente','a.id_cliente')
                ->select('nombre','nit','direccion','id_fac_enc','saldo')
                ->where('id_amortizacion','=',$id)
                ->get();
        $am2 = DB::table('amortizacion as a')
                ->join('cliente as c','c.id_cliente','a.id_cliente')
                ->select('nombre','nit','direccion','id_fac_enc','saldo')
                ->whereIn('id_fac_enc', $fac) // Cambio Where por WhereIn
                ->get();

WhereIn получи данные array и pluck превращает ее colecciГіn в array стоимости типа, которая прошла.

0
ответ дан 01.12.2019, 20:06