Как для инициализации имени таблицы использовать построитель запросов в laravel 7 - PullRequest
1 голос
/ 03 мая 2020

Я попытался инициализировать имя таблицы, но он получил ошибку.

в этом случае я дал инициализацию 'a' & 'b' в имени таблицы

Итак, это мое код:

<?php

namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
class Act_admin extends Model
{

    static function showCustomer(){

        $query = "a.CUST_CODE, a.CUST_NAME AS CUSTOMER NAME, a.GRADE";
        $data['data'] = DB::table("dummy_db.customer a ")
                            ->leftJoin("dummy_db.agents b", "a.AGENT_CODE", "=", "b.AGENT_CODE")                                                
                            ->select(DB::raw($query))->paginate(10);
        dd($data);
    }
}

а сообщения об ошибке:

Illuminate\Database\QueryException
SQLSTATE [42000]: Syntax error or access violation: 1103 Incorrect table name 'customer a '
 (SQL: select count(*) as aggregate from `dummy_db`.`customer a ` inner join `dummy_db`.`agents b` on `a`.`AGENT_CODE` = `b`.`AGENT_CODE`)

1 Ответ

0 голосов
/ 03 мая 2020

используйте as для создания псевдонима.

$data['data'] = DB::table("dummy_db.customer as a")
                            ->leftJoin("dummy_db.agents as b", "a.AGENT_CODE", "=", "b.AGENT_CODE")                                                
                            ->select(DB::raw($query))->paginate(10);
...