欢迎访问宙启技术站
智能推送

laravel自动路由怎么使用

发布时间:2023-05-15 04:31:52

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,提高代码的可读性。