Есть модели User, Article, Tag
User - пользователи, Article - статьи пользователей, Tag - теги статей.
В Модели Article добавил метод для получения всех тегов одной строкой через запятую.
class Article
{
public function tags()
{
return $this->belongsToMany('App\Models\Tag');
}
public function getCommaTagsAttribute()
{
$tags = [];
foreach ($this->tags as $tag) {
$tags[] = $tag->name;
}
return implode(',', $tags);
}
}
То есть теперь у модели Article я могу обращаться к свойству commaTags и получать список тегов одной строкой.
Теперь мне нужно выбрать пользователей с их статьями со свойством commaTags.
Я для этого в модели User заполняю свойство $with.
class User
{
protected $with = ['article.commaTags'];
}
Чтобы при выборке пользователей к ним всегда добавлялись их статьи, а к статьям теги через запятую.
Но такая запись вызывает ошибку. Полагаю потому, что commaTags не настоящее поле, а искусственно созданное.
Как реализовать задуманное?