📅  最后修改于: 2023-12-03 15:02:36.526000             🧑  作者: Mango
Laravel 是一个基于 PHP 的开源 Web 应用程序框架,旨在用简单、优雅的语法让 Web 应用程序开发更加快速、简单和愉悦。
模型(Model)是 Laravel 中处理数据的核心,控制器(Controller)负责处理用户请求,并渲染返回视图(View),迁移文件(Migration)用于管理数据库的结构。
本文将介绍如何使用 Laravel 创建模型、控制器和迁移文件。
使用 Composer 进行安装:
composer create-project --prefer-dist laravel/laravel myapp
使用 Artisan 命令行工具创建模型:
php artisan make:model Post
这将在 app
目录下创建一个名为 Post
的模型类。
使用 Artisan 命令行工具创建控制器:
php artisan make:controller PostController
这将在 app/Http/Controllers
目录下创建一个名为 PostController
的控制器类。
使用 Artisan 命令行工具创建迁移文件:
php artisan make:migration create_posts_table
这将在 database/migrations
目录下创建一个名为 create_posts_table
的迁移文件。可以使用以下命令运行迁移:
php artisan migrate
在 app/Post.php
文件中,可以添加属性、关系和方法。
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model
{
protected $fillable = ['title', 'content', 'user_id']; // 可批量赋值的属性
public function user()
{
return $this->belongsTo(User::class);
}
}
在 app/Http/Controllers/PostController.php
文件中,添加方法来处理请求:
<?php
namespace App\Http\Controllers;
use App\Post;
class PostController extends Controller
{
public function index()
{
$posts = Post::all();
return view('posts.index', compact('posts'));
}
public function create()
{
return view('posts.create');
}
public function store()
{
$attributes = request()->validate([
'title' => 'required',
'content' => 'required',
]);
$attributes['user_id'] = auth()->id(); // 当前用户 ID
$post = Post::create($attributes);
return redirect('/posts/' . $post->id);
}
public function show(Post $post)
{
return view('posts.show', compact('post'));
}
public function edit(Post $post)
{
return view('posts.edit', compact('post'));
}
public function update(Post $post)
{
$attributes = request()->validate([
'title' => 'required',
'content' => 'required',
]);
$post->update($attributes);
return redirect('/posts/' . $post->id);
}
public function destroy(Post $post)
{
$post->delete();
return redirect('/posts');
}
}
在 routes/web.php
文件中,添加路由:
Route::get('/posts', 'PostController@index')->name('posts.index');
Route::get('/posts/create', 'PostController@create')->name('posts.create');
Route::post('/posts', 'PostController@store')->name('posts.store');
Route::get('/posts/{post}', 'PostController@show')->name('posts.show');
Route::get('/posts/{post}/edit', 'PostController@edit')->name('posts.edit');
Route::put('/posts/{post}', 'PostController@update')->name('posts.update');
Route::delete('/posts/{post}', 'PostController@destroy')->name('posts.destroy');
Laravel 提供了简单而优雅的方法来创建模型、控制器和迁移文件。通过这些元素的组合使用,开发者可以创建灵活且可扩展的 Web 应用程序。