РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
84 of 1392 menu

Поле time

Метод time применяется в миграциях Laravel при создании схемы таблицы и позволяет добавить столбец для хранения времени. Первым параметром передаётся имя колонки, вторым - необязательный параметр точности (precision) для секунд. Если точность не указана, используется значение по умолчанию - 0 секунд. Значения сохраняются в формате 'HH:MM:SS' и могут быть использованы для фильтрации через метод whereTime.

Синтаксис

<?php Schema::table('table_name', function (Blueprint $table) { $table->time($column, $precision = 0); }); ?>

Пример

Создадим таблицу 'events' с полем 'start_time' типа TIME:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('events', function (Blueprint $table) { $table->id(); $table->string('title'); $table->time('start_time'); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('events'); } }; ?>

Пример

Создадим поле времени с точностью до микросекунд, передав второй параметр 6:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('tasks', function (Blueprint $table) { $table->id(); $table->string('name'); $table->time('execution_time', 6); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('tasks'); } }; ?>

Пример

Добавим поле времени в существующую таблицу через метод table:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('events', function (Blueprint $table) { $table->time('end_time')->nullable(); }); } public function down(): void { Schema::table('events', function (Blueprint $table) { $table->dropColumn('end_time'); }); } }; ?>

Пример

Используем поле времени в модели для сохранения и извлечения данных:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Event extends Model { protected $fillable = ['title', 'start_time']; protected $casts = [ 'start_time' => 'datetime:H:i:s', ]; } ?>
<?php namespace App\Http\Controllers; use App\Models\Event; use Carbon\Carbon; class EventController extends Controller { public function store() { $event = Event::create([ 'title' => 'Meeting', 'start_time' => '14:30:00', ]); echo $event->title; echo $event->start_time; } } ?>

Результат выполнения кода:

"Meeting" "14:30:00"

Пример

Используем методы для работы с временем при фильтрации записей:

<?php namespace App\Http\Controllers; use App\Models\Event; use Illuminate\Http\Request; class EventController extends Controller { public function index(Request $request) { $time = $request->input('time', '10:00:00'); $events = Event::whereTime('start_time', '>', $time)->get(); foreach ($events as $event) { echo $event->title . ' - ' . $event->start_time; } } } ?>

Результат выполнения кода:

"Conference - 11:30:00" "Workshop - 12:15:00" "Seminar - 14:30:00"

Смотрите также

  • метод date,
    который создаёт столбец типа DATE
  • метод dateTime,
    который создаёт столбец типа DATETIME
  • метод timestamp,
    который создаёт столбец типа TIMESTAMP
  • метод timestamps,
    который автоматически добавляет поля created_at и updated_at
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить