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 中的角色和模糊搜索功能,并且为读者在后续的开发中提供一些帮助。