Получите доступ к миграции laravel и верните возвращенный объект таблицы Blueprint - PullRequest
0 голосов
/ 18 ноября 2018

Интересно, есть ли способ получить доступ к Blueprint в файле миграции и вернуть его во внешний файл.Например, у меня есть следующая миграция ПОЛЬЗОВАТЕЛЕЙ:

    Schema::create('users', function (Blueprint $table) {
        $table->increments('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });

Так что мне интересно, могу ли я "получить доступ" к этому объекту, чтобы использовать его во внешнем файле.Представьте, что у меня есть файл get_data_from_migration.blade.php, и я могу сделать что-то вроде:

use Illuminate\Database\Migrations\Migration;

$table = Migration('migrationName');
var_dump($table);

Таким образом, он выведет пользовательскую таблицу Blueprint на экран.Я знаю, что это не будет правильным синтаксисом, но я использую его только для иллюстрации идеи.

В любом случае, мне нужно напечатать на экране что-то вроде:

Вы столбцы в таблицеявляются:

  • id
  • имя
  • электронная почта
  • email_verified_at
  • пароль

Спасибовы

1 Ответ

0 голосов
/ 18 ноября 2018

Вы можете попробовать что-то вроде этого:

use Illuminate\Support\Facades\Schema;

// for your User model
$table = $user->getTable();
$columns = Schema::getColumnListing($table);

Или, если у вас нет экземпляра User, вы можете попробовать:

use Illuminate\Support\Facades\Schema;

$table = with(new User)->getTable();
$columns = Schema::getColumnListing($table);

Или если вы просто хотитеэто для одной модели вы можете просто жестко закодировать имя таблицы.

use Illuminate\Support\Facades\Schema;

$columns = Schema::getColumnListing('users');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...