Метод macAddress
Метод macAddress применяется в миграциях для создания
колонки, предназначенной для хранения MAC-адреса.
Он автоматически создаёт поле типа varchar с длиной 255 символов.
Поддерживает все дополнительные методы, такие как nullable,
default, unique и другие.
Синтаксис
<?php
Schema::create('table_name', function (Blueprint $table) {
$table->macAddress($column);
});
?>
Пример
Создадим таблицу devices с полем mac_address:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('devices', function (Blueprint $table) {
$table->id();
$table->macAddress('mac_address');
$table->string('name');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('devices');
}
};
?>
Пример
Создадим поле mac_address с дополнительными ограничениями:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::create('network_devices', function (Blueprint $table) {
$table->id();
$table->macAddress('mac_address')->unique();
$table->macAddress('backup_mac')->nullable();
$table->macAddress('wifi_mac')->default('00:00:00:00:00:00');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('network_devices');
}
};
?>
Пример
Добавим поле mac_address в существующую таблицу:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up()
{
Schema::table('devices', function (Blueprint $table) {
$table->macAddress('mac_address')->after('name');
});
}
public function down()
{
Schema::table('devices', function (Blueprint $table) {
$table->dropColumn('mac_address');
});
}
};
?>
Пример
Создадим модель Device с использованием поля mac_address:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Device extends Model
{
protected $fillable = [
'name',
'mac_address',
];
protected $casts = [
'mac_address' => 'string',
];
}
?>