Задать вопрос
maddog670
@maddog670

Как метод одной модели использовать в другой модели Laravel?

Суть вопроса, можно как-то без DI получить метод getProjectDir() в модели User?

Отношение пользователя к проекту один к одному. Есть модель Project и в ней есть такой метод getProjectDir()
class Project extends Model
{
public function user()
    {
        return $this->belongsTo(User::class, 'id');
    }

public function getProjectDir()
    {
        return $this->project_dir;
    }
}


И модель User с методом
class User extends Model
{
public function project()
    {
        return $this->hasOne(Project::class, 'user_id');
    }

public function getAvatarAttribute($value)
    {	
        if(is_null($value)) {
            $avatar = '/img/admin/no-photo.jpg';
        }else{

            if(mb_strpos($value, "logo") !== false) {
                $avatar = '/storage/projects/images/'.$this->project->getProjectDir().'/'.$value;
            }else{
                $avatar = '/img/admin/'.$value;
            }
        }       

        return $avatar;
    }
}
  • Вопрос задан
  • 317 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 1
zhulan0v
@zhulan0v
$this->project->getProjectDir();

если у вас это не работает, то ищите где-то баг или для этого юзера просто нет проекта в бд.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы