Если бы я мог, я хотел бы получить возможность получить все " проголосовавшие вопросы ", которые пользователи, прошедшие проверку подлинности, имеют проголосовавших . и вернуться в формате json.
Я хочу получить вопросы, на которые есть ссылки из таблицы голосования " question_id ".
Таблица вопросов:
id(PK)| title | description | created_at | updated_at
Модель вопроса имеет много голосов
class Question extends Model
{
public function votes()
{
return $this->hasMany(Vote::class, 'question_id');
}
}
Таблица голосов:
id(PK) | answer_id(FK) | question_id(FK) | user_id(FK)
Модель голосования принадлежит вопросу
class Vote extends Model
{
public function question()
{
return $this->belongsTo(Question::class, 'question_id');
}
}
Метод фильтра : возвратит все проголосовавшие вопросы вместе с голосами (я хочу только вопросы)
public function filtered()
{
$user_id = Auth::user()->id;
$votes = Vote::with('question')->where('user_id', $user_id)->get();
$votes->makeVisible('question');
return response()->json($votes);
}
Мне удалось получить все "проголосовавшие вопросы" с помощью Модели голосования. но я хотел бы получить только вопрос.
Текущий результат : голоса с проголосовавшими вопросами
[
{
"id": 1,
"question_id": 1,
"answer_id": 2,
"user_id": 1,
"question": {
"id": 1,
"title": "a question this user voted",
}
},
{
"id": 2,
"question_id": 2,
"answer_id": 3,
"user_id": 1,
"question": {
"id": 2,
"title": "another question this user voted",
}
}
]
Желаемый результат : только проголосовавшие вопросы
[
{
"id": 1,
"title": "a question this user voted",
},
{
"id": 2,
"title": "another question this user voted",
}
]
возможно ли это? в противном случае любой совет будет оценен