请用laravel8.0写一个学生信息管理系统?
时间: 2024-05-07 22:22:56 浏览: 196
好的,以下是一个简单的学生信息管理系统的示例,使用 Laravel 8.0 框架和 MySQL 数据库。
首先,创建一个新的 Laravel 项目:
```
composer create-project --prefer-dist laravel/laravel student-management-system
```
接下来,在 `.env` 文件中配置数据库连接信息:
```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=student_management_system
DB_USERNAME=root
DB_PASSWORD=
```
然后,创建一个 `students` 数据表:
```
php artisan make:model Student -m
```
在 `database/migrations` 目录下找到新生成的迁移文件,然后在 `up` 方法中添加以下字段:
```php
public function up()
{
Schema::create('students', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email');
$table->integer('age');
$table->timestamps();
});
}
```
运行迁移:
```
php artisan migrate
```
现在,我们已经有了一个 `students` 数据表,接下来创建一个控制器来处理学生信息。
```
php artisan make:controller StudentController --resource
```
这将创建一个名为 `StudentController` 的控制器,并为其创建基本的资源操作方法。
在 `routes/web.php` 文件中添加以下路由:
```php
Route::resource('students', 'App\Http\Controllers\StudentController');
```
现在,我们可以访问 `/students` 页面来查看所有学生的信息。我们还可以使用 `/students/create` 页面来创建新的学生记录。
接下来,我们需要创建视图来显示学生信息。在 `resources/views` 目录下创建一个名为 `students` 的文件夹,并在其中创建以下文件:
- `index.blade.php`:列出所有学生的信息
- `create.blade.php`:创建新的学生记录
- `edit.blade.php`:编辑现有的学生记录
在 `index.blade.php` 文件中,添加以下代码:
```php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>All Students</h1>
<a href="{{ route('students.create') }}" class="btn btn-primary mb-3">Add New Student</a>
<table class="table">
<thead>
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Age</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
@foreach($students as $student)
<tr>
<td>{{ $student->id }}</td>
<td>{{ $student->name }}</td>
<td>{{ $student->email }}</td>
<td>{{ $student->age }}</td>
<td>
<a href="{{ route('students.edit', $student) }}" class="btn btn-sm btn-primary">Edit</a>
<form action="{{ route('students.destroy', $student) }}" method="POST" class="d-inline">
@method('DELETE')
@csrf
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
@endsection
```
在 `create.blade.php` 文件中,添加以下代码:
```php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Create New Student</h1>
<form action="{{ route('students.store') }}" method="POST">
@csrf
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control" id="name">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" name="email" class="form-control" id="email">
</div>
<div class="form-group">
<label for="age">Age</label>
<input type="number" name="age" class="form-control" id="age">
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
</div>
</div>
</div>
@endsection
```
在 `edit.blade.php` 文件中,添加以下代码:
```php
@extends('layouts.app')
@section('content')
<div class="container">
<div class="row">
<div class="col-md-12">
<h1>Edit Student</h1>
<form action="{{ route('students.update', $student) }}" method="POST">
@method('PUT')
@csrf
<div class="form-group">
<label for="name">Name</label>
<input type="text" name="name" class="form-control" id="name" value="{{ $student->name }}">
</div>
<div class="form-group">
<label for="email">Email address</label>
<input type="email" name="email" class="form-control" id="email" value="{{ $student->email }}">
</div>
<div class="form-group">
<label for="age">Age</label>
<input type="number" name="age" class="form-control" id="age" value="{{ $student->age }}">
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
</div>
</div>
</div>
@endsection
```
最后,在 `resources/views/layouts` 目录下创建一个名为 `app.blade.php` 的文件,并添加以下代码:
```php
<!DOCTYPE html>
<html>
<head>
<title>Laravel 8 Student Management System</title>
<link href="{{ asset('css/app.css') }}" rel="stylesheet" type="text/css">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand" href="#">Student Management System</a>
</div>
</nav>
@yield('content')
<script src="{{ asset('js/app.js') }}" type="text/js"></script>
</body>
</html>
```
现在我们已经完成了一个简单的学生信息管理系统,可以使用以下命令在本地运行:
```
php artisan serve
```
然后在浏览器中访问 `http://localhost:8000/students` 即可查看所有学生的信息。
阅读全文