Чтобы избежать дублирования, я подумал, что можно элегантно прикрепить макрос к модели, но был разочарован, обнаружив, что это невозможно для абстрактных классов. Как мне этого добиться?
Желаемым результатом было бы добавить макрос в класс модели Laravel, сделав его доступным для всех моих моделей.
Код: Выделить всё
Illuminate\Database\Eloquent\Model::class
Код: Выделить всё
use Illuminate\Database\Eloquent\Model;
/**
* Get the table associated with the model.
* Without database name. (strict only table name)
*
* @return string
*/
Model::macro('getStrictTable', function () {
/** @var \Illuminate\Database\Eloquent\Model $this */
$tableNameParts = explode('.', $this->getTable());
return end($tableNameParts);
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... -the-model
Мобильная версия