Я делаю демо для панели администратора. Я пытаюсь получить пользователя комментария. Моя структура выглядит следующим образом:
- Post
- Comment
Комментарий может быть сделан AppUser
и / или User
, Разница в том, что AppUser
это обычный пользователь и что User
является администратором / редактором
Я делаю обычный запрос, используя этот образец здесь
$comment = new AppUserComment();
$returnComment = $returnComment->with('user');
$returnComment = $returnComment->get();
Это дает мне все комментарии, которые являются 4. В comments
таблица у меня есть столбец с именем is_normal
, который имеет значение 1
когда админ пишет комментарий и 0
когда обычный пользователь пишет это.
Я проверяю значение в AppUserComment
модель с использованием этого способа:
public function user() {
if($this->is_normal > 0){
return $this->belongsTo(User::class, 'user_id', 'id');
} else {
return $this->belongsTo(AppUser::class, 'user_id', 'id');
}
}
Все комментарии имеют значение 0
в is_normal
за исключением последнего комментария, который имеет 1
в is_normal
, Тем не менее, условие не срабатывает, и я всегда получаю AppUser
модель вместо User
модель.
Задача ещё не решена.
Других решений пока нет …