thinkphp学习笔记——实现面试题添加功能

这篇博客记录了使用ThinkPHP框架在控制器Caseinterview.php中实现面试题添加功能的过程,包括处理POST请求、数据验证、数据库插入操作。博主遇到并解决了‘问题’和‘答案’为空导致的SQL约束错误,以及在view中显示备注和操作表样式修复的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*======================在controller下Caseinterview.php里面添加add=============================================↓
D:\phpStudy\WWW\tiku\application\admin\controller\Caseinterview.php
添加add
内容修改为:
public function add()
    {
        if (request()->isPost()) { // 在view里点击提交按钮,会以post的形式,把表单的数据,从view传递给controller。在这里判断,如果返回的数据是post形式的,则为真。
            $data = [
                'question' => input('question'),
                'answer' => input('answer'),
                'mark' => input('mark'),
            ];

            if (db('Caseinterview')->insert($data)) { // 如果(在数据库的Caseinterview表单中,插入$data数据,插入成功)。// 在数据库的Caseinterview表单中,插入$data数据。如果插入成功
                return $this->success('添加管理员成功!', 'lst'); // 插入成功,则显示“添加管理员成功”,跳转到lst界面。
            } else {
                return $this->error('添加管理员失败!'); // 插入失败,则显示“添加管理员失败”。
            }
            return;
        }
        return $this->fetch(); // 在thinkphp的固定用法,用于打开对应的view,并加载数据。
    }
*======================在controller下Caseinterview.php里面添加add=============================================↑

*===============创建add.html文件、修改view下Caseinterview里的add.html文件和lst.html文件=================↓
D:\phpStudy\WWW\tiku\application\admin\view\Caseinterview
下,创建add.html文件
把add.html文件下的‘管理员管理’,‘添加管理员’、‘新增管理员’修改成:‘面试题管理’、‘添加面试题’、‘新增面试题’。
把add.html文件下的‘管理员名’、‘管理员密码’修改成:‘问题’、‘答案’。
复制答案代码,把答案改成备注!
<div class="form-group">
                            <label for="username" class="col-sm-2 control-label no-padding-right">备注</label>
                            <div class="col-sm-6">
                                <input class="form-control" id="password" placeholder="" name="password"  type="text">
                            </div>
                            <p class="help-block col-sm-4 red">* 必填</p>
                        </div>

http://127.0.0.1/tiku/public/index.php/admin/caseinterview/lst.html
*******************************************************************************************
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'question' cannot be null(bug)
违反完整性约束;列“问题”不能为空。
D:\phpStudy\WWW\tiku\application\admin\controller\Caseinterview.php
修改内容:
public function add()
    {
        if (request()->isPost()) { // 在view里点击提交按钮,会以post的形式,把表单的数据,从view传递给controller。在这里判断,如果返回的数据是post形式的,则为真。
            $data = [
                'question' => input('question'),
                'answer' => input('answer'),
                'mark' => input('mark'),
            ];
		dump($data);die();// dump输入变量类型及变量数值
http://127.0.0.1/tiku/public/index.php/admin/caseinterview/add.html
array(3) {
  ["question"] => NULL
  ["answer"] => NULL
  ["mark"] => NULL
}
解决方法:
D:\phpStudy\WWW\tiku\application\admin\view\Caseinterview\add.html
把‘问题’、‘答案’、‘备注’下面的
<input class="form-control" id="username" placeholder="" name="username"  type="text">
分别改成:
<input class="form-control" id="question" placeholder="" name="question"  type="text">
<input class="form-control" id="answer" placeholder="" name="answer"  type="text">
<input class="form-control" id="mark" placeholder="" name="mark"  type="text">
*******************************************************************************************
添加备注,显示在view下面,操作表单里的内容在备注里面,操作表的边框都没有了!(bug)
D:\phpStudy\WWW\tiku\application\admin\view\Caseinterview\lst.html
<tr>
                                <th class="text-center"width="4%">ID</th>
                                <th class="text-center"width="30%">问题</th>
                                <th class="text-center"width="30%">答案</th>
                                <th class="text-center"width="4%">备注</th>
                                <th class="text-center"width="13%">操作</th>

                            </tr>
添加备注,显示在view下面,操作表单里的内容在备注里面,操作表的边框都没有了!
解决方法:
<tr>
                            <td align="center">{$vo.id}</td>
                            <td align="center">{$vo.question}</td>
                            <td align="center">{$vo.answer}</td>
                            <td align="center">{$vo.mark}</td>
                            <td align="center">
********************************************************************************************
*===============创建add.html文件、修改view下Caseinterview里的add.html文件和lst.html文件=================↑
*===============修改admin下controller里的Caseinterview.php文件=================↓
D:\phpStudy\WWW\tiku\application\admin\controller\Caseinterview.php
修改内容:
public function add()
    {
        if (request()->isPost()) { // 在view里点击提交按钮,会以post的形式,把表单的数据,从view传递给controller。在这里判断,如果返回的数据是post形式的,则为真。
            $data = [
                'question' => input('question'),
                'answer' => input('answer'),
                'mark' => input('mark'),
            ];
//       dump($data);die(); // dump输入变量类型及变量数值

            if (db('Caseinterview')->insert($data)) { // 如果(在数据库的Caseinterview表单中,插入$data数据,插入成功)。// 在数据库的Caseinterview表单中,插入$data数据。如果插入成功
                return $this->success('添加问题成功!', 'lst'); // 插入成功,则显示“添加管理员成功”,跳转到lst界面。
            } else {
                return $this->error('添加问题失败!'); // 插入失败,则显示“添加管理员失败”。
            }
            return;
        }
        return $this->fetch(); // 在thinkphp的固定用法,用于打开对应的view,并加载数据。

    }
http://127.0.0.1/tiku/public/index.php/admin/caseinterview/add.html
‘添加问题成功’
*===============修改admin下controller里的Caseinterview.php文件=================↑


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值