Я делаю проект на Laravel. У меня есть модель с именем User.php, и здесь я хочу установить переменную $ appends в зависимости от условия. В базе данных я сохранил значения в формате ключевого атрибута. например:
У меня есть таблица с именем «пользователь», которая содержит основную информацию, такую как имя, адрес электронной почты и номер мобильного телефона.
Другая таблица с именем user_attributes_master содержит такие столбцы, как «аватар», «тема» и т. Д.
и другая таблица с именем user_attribute_values, которая содержит такие столбцы, как id, user_id и att_id (который является первичным ключом таблицы user_attributes_master)
user.php выглядит как
class User extends Authenticatable
{
protected $appends = ['avatar_photo'];
public function profile_attributes()
{
return $this->belongsToMany(\App\Models\Access\User\UserProfileAttributes::class,config('access.user_attribute_values_table'),'user_id','user_attribute_id')->withPivot('value', 'active')->withTimestamps();
}
/**
* @return string
*/
public function getAvatarPhotoAttribute()
{
$avatar = $this->profile_attributes()->where('user_attributes_master.id',7)->first()->avatar_path;
return $avatar;
}
}
Здесь я получаю атрибут avatar_path для каждой записи, которая является добавляемой переменной, которую я установил для модели profile.php. Как получить это только в столбце «аватар» в profile.php. Как я могу установить эту добавляемую переменную.
код атрибута модели conatins,
protected $appends = ['avatar_path','theme_path'];
public function getAvatarPathAttribute()
{
return $this->pivot->value != null ? config('app.url').'/'.config('profile.images.user_images'). "/" . $this->pivot->user_id ."/" . config("profile.images.avatar")."/".$this->pivot->value : '';
}
Здесь мне не нужен avatar_path для каждого атрибута.
$appends
в зависимости от какого-либо условия? - person Jonas Staudenmeir   schedule 26.04.2018