Laravel 5, как добавить поля $with/$appends в дочернем классе моделиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel 5, как добавить поля $with/$appends в дочернем классе модели

Сообщение Anonymous »

У меня есть несколько моделей, которые имеют некоторые общие функции (из-за их полиморфизма), которые я хотел бы объединить в класс ResourceContentModel (или даже в особенность).

Класс ResourceContentModel будет расширять класс eloquent Model, а мои отдельные модели затем будут расширять ResourceContentModel.

Мой вопрос касается таких полей модели, как $with, $appends и $touches. . Если я использую их для каких-либо общих функций в ResourceContentModel, то, когда я переопределяю их в своем дочернем классе модели, они перезаписывают значения, которые я установил в своем родительском классе.

Ищете советы, как решить эту проблему?

Например:

Код: Выделить всё

class ResourceContentModel extends Model
{
protected $with = ['resource']
protected $appends = ['visibility']

public function resource()
{
return $this->morphOne(Resource::class, 'content');
}

public function getVisibilityAttribute()
{
return $this->resource->getPermissionScope(Permission::RESOURCE_VIEW);
}
}

class Photo extends ResourceContentModel
{
protected $with = ['someRelationship']
protected $appends = ['some_other_property']

THESE ARE A PROBLEM AS I LOSE THE VALUES IN ResourceContentModel
}
Мне нужен простой способ сделать это, чтобы дочерние классы не слишком сильно менялись из-за того, что я выделил дополнительный класс в иерархии для сбора общий код.

Подробнее здесь: https://stackoverflow.com/questions/446 ... odel-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»