📅  最后修改于: 2023-12-03 15:24:15.008000             🧑  作者: Mango
在 Laravel 中,我们可以轻松地制作模型和控制器来处理我们的数据和业务逻辑。本文将介绍如何在 Laravel 中制作模型和控制器的步骤及相关注意事项。
Laravel 提供了 Artisan 命令行工具,可以通过该工具快速创建模型。以下是创建名为 Task
的模型的步骤:
Task
模型:php artisan make:model Task
app
目录下会出现一个 Task.php
文件,这就是所创建的模型。Task.php
中定义模型的属性和方法,例如:<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Task extends Model
{
protected $fillable = [
'title', 'description',
];
}
上面的代码定义了 Task
模型具有 title
和 description
两个可填属性。
同样地,Laravel 提供了 Artisan 命令行工具,可以通过该工具快速创建控制器。以下是创建名为 TaskController
的控制器的步骤:
TaskController
控制器:php artisan make:controller TaskController --resource
app/Http/Controllers
目录下会出现一个 TaskController.php
文件,这就是所创建的控制器。TaskController.php
中定义控制器的方法,例如:<?php
namespace App\Http\Controllers;
use App\Task;
use Illuminate\Http\Request;
class TaskController extends Controller
{
public function index()
{
$tasks = Task::all();
return view('tasks.index', compact('tasks'));
}
public function create()
{
return view('tasks.create');
}
public function store(Request $request)
{
Task::create([
'title' => $request->title,
'description' => $request->description,
]);
return redirect()->route('tasks.index');
}
// ... 其他方法
}
上面的代码定义了 TaskController
控制器具有 index
、create
、store
三个方法,用于显示所有任务、显示创建任务的表单、存储新任务等功能。
Laravel 中的路由用于定义 URL 与控制器方法之间的映射关系。以下是定义 TaskController
的路由的步骤:
routes/web.php
文件。Route::get('/tasks', 'TaskController@index')->name('tasks.index');
Route::get('/tasks/create', 'TaskController@create')->name('tasks.create');
Route::post('/tasks', 'TaskController@store')->name('tasks.store');
上面的代码定义了 tasks
路由分别与 TaskController
的 index
、create
、store
三个方法进行映射。
Laravel 中的视图用于定义前端页面模板。以下是 Task
相关视图的代码片段:
<!-- tasks.index -->
<table>
<thead>
<tr>
<th>Title</th>
<th>Description</th>
</tr>
</thead>
<tbody>
@foreach($tasks as $task)
<tr>
<td>{{ $task->title }}</td>
<td>{{ $task->description }}</td>
</tr>
@endforeach
</tbody>
</table>
<!-- tasks.create -->
<form action="{{ route('tasks.store') }}" method="POST">
@csrf
<div>
<label for="title">Title</label>
<input type="text" name="title" id="title">
</div>
<div>
<label for="description">Description</label>
<textarea name="description" id="description"></textarea>
</div>
<button type="submit">Create</button>
</form>
上面的代码展示了两个视图模板,分别用于显示所有任务和创建新任务的表单。
以上就是在 Laravel 中制作模型和控制器的步骤及相关注意事项。通过统一的编程模式,Laravel 大大简化了应用程序的开发流程,同时也让应用更加具有可读性和可维护性。