在 laravel 中添加列时未定义的变量

Udefined variable while adding column in laravel

$save=$data->save();

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

И 在 table 中保存的数据比想在用户 table 中添加具有该数据 ID 的列要少,但出现错误:

undefined variable $data

突出显示的行是:

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

您需要使用 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 应该在函数内部可用。