Черты внутри моделей

Например, у меня есть модель класса. Я хочу чтобы это было Timestampable, Это означает, что модель должна иметь created_at, updated_at поля и добытчики для них.

<?php

trait Timestampable {

protected $created_at;
protected $updated_at;

public function getCreatedAt() {}
public function getUpdatedAt() {}

}

class User extends Model {

use Timestampable;

protected $id;
protected $name;
}

Это нормально? Или я должен двигаться timestampable поля в модели?

Подлинная черта (Laravel)

В Laravel они не ставят свои поля в черты, а только некоторые из них. Конечно, это работает, пока эти поля существуют в классе, где использовалась наша черта. Но мы теряем некоторые преимущества в автозаполнении IDE и делаем наш код неоднозначным.

0

Решение

По умолчанию все модели уже имеют свойство created_at а также updated_at поскольку Illuminate\Database\Eloquent\Model уже использовал Illuminate\Database\Eloquent\Concerns\HasTimestamps которые определяют getCreatedAtColumn а также getUpdatedAtColumn методы Метод HasTimestamps getCreatedAtColumn

Вам не нужно определять свой собственный HasTimestamps это не важно, потому что все реализации, обеспечивающие такое поведение, уже существуют

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector