Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save Nutscracker87/82070e45a095ff8bea3fd164160dec25 to your computer and use it in GitHub Desktop.

Select an option

Save Nutscracker87/82070e45a095ff8bea3fd164160dec25 to your computer and use it in GitHub Desktop.

Revisions

  1. Nutscracker87 created this gist Dec 8, 2018.
    31 changes: 31 additions & 0 deletions get sql query from capsule(eloquent) object
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,31 @@
    /*
    * @param prepared capsule(eloquent) object
    * use: capsuleToSql(
    $capsuleObject->select('*')
    ->orderBy('created_date', 'desc'));
    */
    public function capsuleToSql($preparedForGetQuery) {
    Capsule::connection()->enableQueryLog();

    $preparedForGetQuery->get();

    $loggedQueries = Capsule::connection()->getQueryLog();
    $lastQueryInfo = end($loggedQueries);
    $lastQuery = $lastQueryInfo['query'];
    $lastQueryBindings = $lastQueryInfo['bindings'];
    $search = array();
    $replace = array();
    foreach ($lastQueryBindings as $value) {
    $search[] = "?";
    $replace[] = "'".$value."'";
    }

    $sqlQuery = $lastQuery;

    foreach ($search as $key => $value) {
    $from = '/'.preg_quote($search[$key], '/').'/';
    $sqlQuery = preg_replace($from, $replace[$key], $sqlQuery, 1);
    }

    return $sqlQuery;
    }