Udefined переменная при добавлении столбца в laravel

$save=$data->save();

if ($save) {
   Schema::table('users', function($table) {
      $table->string($data->id);
   });
   return back()->withInput()->with('message','Carrier Created Successfully');
}

И сохранил несколько данных в таблице, чем хочу добавить столбец с идентификатором этих данных в таблицу пользователей, но с ошибкой:

неопределенная переменная $data

и выделенная строка:

$table->string($data->id);

2 ответа

Решение

Вам нужно использовать use для использования другой переменной из одной функции в другую

Schema::table('users', function($table) use ($data) {
      $table->string($data->id);
});

Переменные вне внутренней функции недоступны внутри внутренней функции. Для этого вам нужно передать переменную, используяuse

$save=$data->save();

if ($save) {
   Schema::table('users', function($table) use ($data) {
      $table->string($data->id);
   });
   return back()->withInput()->with('message','Carrier Created Successfully');
}

Сейчас $data должен быть доступен внутри функции.

Другие вопросы по тегам