PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Laravel hùng biện - Có cách nào để thêm Gợi ý trước khi CHỌN không?

Bạn có thể ghi đè lớp PostgresConnection và lớp PostgresGrammar để thêm logic của riêng bạn vào phương thức compileSelect trong lớp PostgresGrammar.

class PostgresConnection extends \Illuminate\Database\PostgresConnection
{
    /**
     * @return \Illuminate\Database\Grammar|\Illuminate\Database\Query\Grammars\PostgresGrammar
     */
    protected function getDefaultQueryGrammar()
    {
        return $this->withTablePrefix(new PostgresGrammar());
    }
}
class PostgresGrammar extends \Illuminate\Database\Query\Grammars\PostgresGrammar
{
    /**
     * Compile a select query into SQL.
     *
     * @param  \Illuminate\Database\Query\Builder $query
     *
     * @return string
     */
    public function compileSelect(Builder $query)
    {
        $sql = parent::compileSelect($query);
        return '/*+ IndexScan(users) */' . $sql;
    }
}

Cần xác định lớp nhà cung cấp dịch vụ, điều rất quan trọng là phải đăng ký nhà cung cấp dịch vụ này trước Illuminate \ Database \ DatabaseServiceProvider ::class

class DatabasePostgresServiceProvider extends ServiceProvider
{
    /**
     * 此外,在 Illuminate\Database\DatabaseServiceProvider::class 之前注册此服务提供程序非常重要
     *
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        Connection::resolverFor('postgres', function ($connection, $database, $prefix, $config) {
            // Use your own defined PostgresConnection class here.
            return new PostgresConnection($connection, $database, $prefix, $config);
        });
    }
}

Được định cấu hình trong config / app.php

'providers' => [
        // .... 
        DatabasePostgresServiceProvider::class,
        Illuminate\Database\DatabaseServiceProvider::class,

    ],



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Barman Cloud - Phần 1:WAL Archive

  2. ImportError khi chạy cgi-bin trên localhost - ký hiệu không xác định:lo_truncate64

  3. regexp_matches cách tốt hơn để loại bỏ việc trả về dấu ngoặc nhọn

  4. Làm cách nào để chuyển một bảng hoặc các hàng cho một hàm trong Postgresql?

  5. Postgres psql không được nhận dạng là lệnh nội bộ hoặc lệnh bên ngoài