Можно ли создать новый буфер SQL в Emacs, если Вы уже существуете?

Используйте insertGetId() вместо insert(), а затем find() модель. Например:

$id = DB::table('users')->insertGetId(['name' => 'Ivanka', 'email' => 'ivanka@ivanka.com']); 
$user = User::find($id);

Когда вы обновляете, у вас есть id, поэтому просто find() это: User::find($id).

Документация, объясняющая, как работает insertGetId(): https://laravel.com/docs/5.7/queries#inserts

5
задан Martin Clarke 13 July 2010 в 09:07
поделиться

3 ответа

Выполнение:

M-x sql-rename-buffer

На связанном *SQL* буфер переименует текущий буфер после текущего соединения. Так:

*SQL*

Становится:

*SQL user/database*

Можно затем сделать:

M-x sql-mysql

Или независимо от того, что Ваша разновидность DB должна создать другой буфер SQL.

8
ответ дан 13 December 2019 в 19:36
поделиться

Как небольшое упрощение, можно просто сделать:

(add-hook 'sql-interactive-mode-hook 'sql-rename-buffer)

(Т.е. Вам не нужно lambda).

2
ответ дан 13 December 2019 в 19:36
поделиться

Кроме того, если кому-то как я нравится другое представление соединения, здесь является моим. Это - то, как мои буферы sql назвали: "driver://user@server/database"


(defun sql-make-alternate-buffer-name ()
  (concat (concat (prin1-to-string sql-interactive-product) "://")
      (if (string= "" sql-user)
          (if (string= "" (user-login-name))
          ()
        (concat (user-login-name) "/"))
        (concat sql-user "@"))
      (concat sql-server "/")
      (if (string= "" sql-database)
          (if (string= "" sql-server)
          (system-name)
        sql-server)
        sql-database)))

Буферы SQL создали в sql-интерактивном-режиме, который выполняет sql-interactive-mode-hook, таким образом, нет никакой потребности выполнить sql-rename-buffer вручную


(add-hook 'sql-interactive-mode-hook
    (lambda () (sql-rename-buffer)))
1
ответ дан 13 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: