控制器方法将表单提交的数据,做为新一行数据添加到数据表中。
时间: 2024-02-27 14:57:35 浏览: 71
好的,那我给你提供一个简单的示例代码,假设你要添加数据的表名为`user`,有三个字段:`id`(自增主键)、`name`和`age`。控制器方法如下:
```PHP
public function add()
{
// 判断是否是POST提交
if ($this->request->isPost()) {
// 获取表单数据
$name = $this->request->getPost('name');
$age = $this->request->getPost('age');
// 将数据插入到数据库中
$data = [
'name' => $name,
'age' => $age,
];
$this->db->table('user')->insert($data);
// 添加成功后,跳转到列表页
return redirect()->to('/user/list');
}
// 显示添加页面
return view('user/add');
}
```
在这个示例代码中,我们首先判断是否是POST提交,如果是,则获取表单数据,并将数据插入到数据库中。如果插入成功,则跳转到列表页。如果不是POST提交,则显示添加页面。你可以根据自己的需求进行修改。
相关问题
创建以sr为名的数据库,创建n45为名的数据表。 (2)表结构为3列:第1列列名为id,设为主键、自增;第2列列名为name;第3列为age。为数据表创建模型,编写相应的路由、控制器和视图。 (3)视图中用无序列表(ul 标签)呈现数据表name列数据。 (4)创建视图,在表单中提供两个文本框,用于输入以上数据表除id列以外的数值,以post方式提交表单。 (5)控制器方法将表单提交的数据,做为新一行数据添加到数据表中。
很好,这是一个比较完整的数据库和Web开发任务,需要用到数据库管理软件和Web框架。以下是一个简单的Python Flask示例代码,可以实现上述功能:
1. 创建数据库和数据表
```sql
-- 创建名为sr的数据库
CREATE DATABASE sr;
-- 选择sr数据库
USE sr;
-- 创建名为n45的数据表
CREATE TABLE n45 (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
age INT
);
```
2. 创建Flask应用程序
```python
from flask import Flask, render_template, request
import pymysql
# 连接MySQL数据库
db = pymysql.connect(host='localhost', user='root', password='password', database='sr')
cursor = db.cursor()
app = Flask(__name__)
@app.route('/')
def index():
# 查询数据表中的name列数据
cursor.execute('SELECT name FROM n45')
data = cursor.fetchall() # 获取所有查询结果
names = [d[0] for d in data] # 取出name列数据
return render_template('index.html', names=names)
@app.route('/add', methods=['POST'])
def add():
# 获取表单提交的数据
name = request.form['name']
age = request.form['age']
# 将数据插入数据表
sql = "INSERT INTO n45 (name, age) VALUES (%s, %s)"
cursor.execute(sql, (name, age))
db.commit() # 提交事务
return '添加成功'
if __name__ == '__main__':
app.run(debug=True)
```
3. 创建模板文件(templates/index.html)
```html
<!DOCTYPE html>
<html>
<head>
<title>名单</title>
</head>
<body>
<h1>名单</h1>
<ul>
{% for name in names %}
<li>{{ name }}</li>
{% endfor %}
</ul>
<h2>添加新成员</h2>
<form action="/add" method="post">
<input type="text" name="name" placeholder="姓名"><br>
<input type="text" name="age" placeholder="年龄"><br>
<input type="submit" value="添加">
</form>
</body>
</html>
```
4. 运行Flask应用程序
在终端中进入应用程序目录,运行以下命令启动应用程序:
```bash
export FLASK_APP=app.py # 设置应用程序文件名
flask run # 启动应用程序
```
在浏览器中访问 http://localhost:5000 即可看到应用程序界面。通过表单输入姓名和年龄,点击“添加”按钮即可将数据添加到数据表中。同时界面中显示数据表的name列数据。
使用Laravel创建以sr为名的数据库,创建n45为名的数据表。 (2)表结构为3列:第1列列名为id,设为主键、自增;第2列列名为name;第3列为age。为数据表创建模型,编写相应的路由、控制器和视图。 (3)视图中用无序列表(ul 标签)呈现数据表name列数据。 (4)创建视图,在表单中提供两个文本框,用于输入以上数据表除id列以外的数值,以post方式提交表单。 (5)控制器方法将表单提交的数据,做为新一行数据添加到数据表中。
1. 创建数据库和数据表:
在 Laravel 中,可以使用 Artisan 命令行工具来创建数据库和数据表。打开命令行终端,进入 Laravel 项目目录,输入以下命令:
```
php artisan make:model Sr -m
```
这个命令将创建一个名为 Sr 的 Eloquent 模型,并且会同时创建一个对应的数据库迁移文件。打开数据库迁移文件,可以看到如下代码:
```php
public function up()
{
Schema::create('srs', function (Blueprint $table) {
$table->id();
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('srs');
}
```
修改 up 方法中的代码,添加 name 和 age 两列:
```php
public function up()
{
Schema::create('srs', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('age');
$table->timestamps();
});
}
```
然后在命令行终端中输入以下命令,执行数据库迁移:
```
php artisan migrate
```
2. 创建模型、路由和控制器:
打开 Sr 模型文件,添加以下代码:
```php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Sr extends Model
{
use HasFactory;
protected $fillable = ['name', 'age'];
}
```
在路由文件 web.php 中添加以下代码:
```php
use App\Http\Controllers\SrController;
Route::get('/', [SrController::class, 'index']);
Route::post('/', [SrController::class, 'store']);
```
创建 SrController 控制器:
```
php artisan make:controller SrController
```
打开 SrController.php 文件,添加以下代码:
```php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Sr;
class SrController extends Controller
{
public function index()
{
$srs = Sr::all();
return view('index', compact('srs'));
}
public function store(Request $request)
{
$sr = new Sr;
$sr->name = $request->name;
$sr->age = $request->age;
$sr->save();
return redirect('/');
}
}
```
3. 创建视图:
打开 resources/views/index.blade.php 文件,在文件中添加以下代码:
```html
<ul>
@foreach($srs as $sr)
<li>{{ $sr->name }}</li>
@endforeach
</ul>
<form method="post">
@csrf
<div>
<label for="name">Name:</label>
<input type="text" name="name" id="name">
</div>
<div>
<label for="age">Age:</label>
<input type="text" name="age" id="age">
</div>
<button type="submit">Add</button>
</form>
```
这个视图中,使用了 Blade 模板引擎来显示数据表中的 name 列数据,并且提供了一个表单,用于添加新的数据。
现在,访问网站首页,就可以看到数据表中的 name 列数据,并且可以通过表单向数据表中添加新的数据了。
阅读全文