php - 如何在 laravel 中管理数据库中的试题?
问题描述
请尝试在 PHP/Laravel 中创建一个在线考试平台。我将问题和答案存储在数据库中。我已经能够使用foreach
. 如何一次显示一个问题/答案供学生解决。第一个问题之后的下一步按钮。这是我的控制器代码:
public function showQuestions($course_code, $course_semester)
{
$course = Course::find($course_code);
$courseQuestion = DB::table('courses')
->select('*')
->join('questions', 'courses.course_code', 'questions.subject_code')
->where('course_code','=', $course_code)
->where('course_semester','=',$course_semester)
->get();
return view('all-question-page',[
'display' => $courseQuestion,
'course' => $course
]);
}
在我的刀片文件中,我使用了foreach,它基本上显示所有问题和答案,甚至不允许我为不同的问题选择答案,因为它具有相同的“字段类型名称”。我想一个一个地显示问题或任何我能做到的最好的方式。我需要帮助
解决方案
您可以通过在模型上添加方法来获取下一个问题,例如:
public function next()
{
return static::where($this->getKeyName(), '>', $this->getKey())->first();
}
这假设您有来自端点的问题上下文,例如上面 Vimona 的响应。您的控制器方法可能如下所示:
class QuestionController
{
...
public function show($id)
{
// Find the question, assuming the model is Question
$question = Question::find($id);
return view('question', [
'question' => $question
]);
}
}
刀片视图中的下一个按钮:
<a href="{{route('question', ['id' => $question->next()->getKey()])}}">Next</a>
总之,我将从您课程的第一个问题开始,然后您可以使用next
提供的方法从那里获得“下一个”问题。
推荐阅读
- microsoft-graph-api - 如何使用 Microsoft 预订 API 创建与其他用户的预订
- c# - 无法使用 selenium 单击未来日期 xdsoft 控件
- angular - 如何将 src 属性设置为项目 url 之外?
- sql - 如何使用m2m条件查询数据
- python - 如果只能获取完整的用户列表,则从 REST GET 读取单个用户条目
- clickhouse - How to extract ascending subsets from the sequence?
- azure - 在单个查询中查询相同搜索范围内的多个 Azure TSI 时间序列实例
- python - 无法使用从本地文件读取的正确凭据(用户名和密码)对 SSH 服务器进行身份验证
- javascript - localstorage 注意更新 JWT Reactjs
- react-native - 如何添加评论以在本机反应中获取流