laravel添加角色和模糊搜索功能的实现代码

Laravel 添加角色和模糊搜索功能的实现

1. Laravel 添加角色

Laravel 为了方便我们管理用户,在自带的 Auth 中也内置了组件来管理用户角色,可以使我们的权限控制更加方便。

在 Laravel 中使用角色,需要先创建一个角色的模型,在 `app` 目录下创建 Role.php 文件,并继承 `Illuminate\Database\Eloquent\Model` 。

namespace App;

use Illuminate\Database\Eloquent\Model;

class Role extends Model

{

protected $fillable = ['name']; //允许批量赋值的属性

}

接下来创建一个填充文件 RoleTableSeeder.php 用于填充数据。

use Illuminate\Database\Seeder;

use App\Role;

class RoleTableSeeder extends Seeder

{

public function run()

{

Role::create(['name' => 'admin']);

Role::create(['name' => 'editor']);

Role::create(['name' => 'user']);

}

}

接着运行 `php artisan db:seed --class=RoleTableSeeder` 进行数据填充,如果需要重新填充,可以运行 `php artisan migrate:refresh --seed`。

2. 模糊搜索功能实现

模糊搜索功能,可以方便用户在大量数据中找到自己需要的信息。在 Laravel 中使用模糊搜索功能,我们可以使用 `where` 函数进行查询。

2.1 实现步骤

首先在搜索页面加入一个 `input` 标签,用于输入搜索的关键字,并且在表单中使用 `GET` 方法。

<form action="{{ route('search') }}" method="GET">

<input type="text" name="keywords" placeholder="请输入搜索关键字">

<button type="submit">搜索</button>

</form>

然后在控制器中添加方法进行搜索,首先判断搜索关键字是否为空,如果不为空,就使用 `where` 函数根据关键字进行搜索。

public function search(Request $request)

{

$keywords = $request->keywords;

if ($keywords) {

$users = User::where('name', 'like', '%' . $keywords . '%')

->orWhere('email', 'like', '%' . $keywords . '%')

->paginate(10);

} else {

$users = User::paginate(10);

}

return view('users.index', compact('users'));

}

以上代码中,我们使用了 `like` 关键字和 `%` 通配符进行模糊搜索,如下:

- `users` 表中的 `name` 字段,匹配包含搜索关键字的记录;

- `users` 表中的 `email` 字段,匹配包含搜索关键字的记录。

最后返回视图展示搜索结果,也可以在视图中使用 Laravel 的分页功能,这里我们使用 `paginate` 方法进行分页。

总结

本文主要介绍了 Laravel 中添加角色的方法和模糊搜索的实现步骤。角色可以方便我们管理用户和权限,模糊搜索则可以方便用户在大量数据中快速找到需要的信息。希望本文可以帮助读者了解 Laravel 中的角色和模糊搜索功能,并且为读者在后续的开发中提供一些帮助。

后端开发标签