laravel自动路由怎么使用
Laravel 自动路由是一种方便的工具,可以让开发者快速地生成路由,减少手动编写路由的时间和工作量。Laravel 的自动路由功能是基于控制器和动作名称自动生成的,可以大大简化路由的工作量,使开发者更加专注于业务逻辑的编写。
下面是 Laravel 自动路由的使用步骤:
1. 创建控制器
首先需要创建一个控制器,在这里我们以 UserController 为例。可以使用以下命令来快速生成控制器:
php artisan make:controller UserController
2. 编写控制器
在控制器中编写业务逻辑,并定义需要的动作。例如,我们需要定义一个 showUser 方法来显示用户信息:
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class UserController extends Controller
{
public function showUser($id)
{
// 显示用户信息
}
}
3. 自动路由
接下来,我们可以使用自动路由功能来注册路由。在 Laravel 5.3 以后的版本中,可以使用以下代码来定义自动路由:
Route::resource('users', 'UserController');
在这个例子中,我们定义了一个名为 users 的路由,使用 UserController 控制器的方法来处理请求。代码中的 resource 方法会自动为我们定义以下路由:
| HTTP Method | URI | Action | 说明 |
|-------------|----------------|---------------------|----------------------------------|
| GET | /users | UserController@index | 显示所有用户信息 |
| GET | /users/create | UserController@create | 显示添加用户的表单 |
| POST | /users | UserController@store | 处理添加用户的操作 |
| GET | /users/{id} | UserController@show | 显示指定用户的信息 |
| GET | /users/{id}/edit | UserController@edit | 显示编辑用户信息的表单 |
| PUT/PATCH | /users/{id} | UserController@update | 处理编辑用户信息的操作 |
| DELETE | /users/{id} | UserController@destroy | 处理删除用户的操作 |
注意:Laravel 自动路由的命名规则和资源控制器的命名规则是相互对应的。例如,定义了一个 UserController 控制器,那么自动生成的路由命名前缀便是 users,这与控制器名称的复数形式相对应。如果定义了 ArticleController,则路由命名前缀为 articles。
4. 命名路由
自动路由仅可以访问控制器的方法,但我们经常需要为路由定义名称来使代码更具可读性。为了定义一个名称为 user.info 的路由,则需要使用下面的方式:
Route::get('user/{id}', 'UserController@show')->name('user.info');
5. URL 生成
使用命名路由后,我们可以使用 Laravel 内置的 url() 辅助函数来生成对应路由的 URL:
$url = url('user/'.$id);
也可以使用路由的名称来生成 URL:
$url = route('user.info', ['id' => $id]);
总结
Laravel 自动路由是一个很不错的工具,可以自动将控制器中的动作名称转换为 URI,省去了手动编写路由的步骤,大大提高了开发效率。同时,Laravel 还提供了命名路由和 URL 生成等功能,开发者可以更加方便地生成 URL,提高代码的可读性。
