📅  最后修改于: 2023-12-03 15:02:34.465000             🧑  作者: Mango
Laravel 是一个流行的 PHP Web 框架,它提供了一种优雅且简单的方式来构建 Web 应用程序。Laravel 框架提供了许多工具和功能来简化 Web 应用程序开发过程,其中最重要的一些功能是模型、迁移和控制器。
在本教程中,我们将学习如何使用 Laravel 8 中的模型、迁移和控制器来开发一个简单的 Web 应用程序。
Laravel 中的模型是用于在应用程序中处理基础数据的核心组件。模型通常代表一个表或集合中的一行数据。Laravel 中的模型包含以下元素:
在 Laravel 中,可以使用 artisan
命令行工具自动创建模型。例如,要创建一个名为 User
的模型,可以运行以下命令:
php artisan make:model User
此命令将生成一个名为 User.php
的 PHP 类文件,该文件包含一个用于处理数据的类。
在 Laravel 中,迁移是一种用于管理数据库的工具。使用迁移,开发人员可以轻松地添加、修改或删除数据库中的表或列。
在 Laravel 中,通过 artisan
命令行工具进行迁移。例如,以下命令将创建一个名为 users
的表格:
php artisan make:migration create_users_table
对于大型的应用程序,可能需要多个迁移文件来处理用户的需求。每当要添加、修改或删除表格时,都需要创建新的迁移文件。
在 Laravel 中,控制器是处理 HTTP 请求的核心组件。控制器通常包含一个或多个方法,每个方法代表一个特定的 HTTP 动作(例如 GET
、POST
、PUT
或 DELETE
)。
Laravel 中,可以使用以下命令创建控制器:
php artisan make:controller UserController
此命令将生成一个名为 UserController.php
的 PHP 类文件,该文件包含用于处理 HTTP 请求的方法。
现在可以使用 Laravel 8 中的模型、迁移和控制器,开发一个简单的 Web 应用程序。
以下代码是一个示例 User
模型:
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use HasFactory;
protected $fillable = [
'name',
'email',
'password',
];
}
以下代码是一个示例 users
数据库迁移:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}
以下代码是一个示例 UserController
控制器:
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$users = User::all();
return view('users.index', ['users' => $users]);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('users.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$user = new User;
$user->name = $request->name;
$user->email = $request->email;
$user->password = $request->password;
$user->save();
return redirect('users');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$user = User::find($id);
return view('users.show', ['user' => $user]);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$user = User::find($id);
return view('users.edit', ['user' => $user]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$user = User::find($id);
$user->name = $request->name;
$user->email = $request->email;
$user->password = $request->password;
$user->save();
return redirect('users');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$user = User::find($id);
$user->delete();
return redirect('users');
}
}
在此应用程序中,我们使用 User
模型来处理数据库中的用户数据、使用 users
数据库迁移来定义数据库中的表格和列,并使用 UserController
控制器来处理 HTTP 请求。
如果想要在 Laravel 8 中学习更多关于模型、迁移和控制器的内容,请查看 Laravel 文档。