# 操作方法
## 基本操作方法
```
//渲染视图 compact 方法可以同时接收多个参数
return view('users.show', compact('user', 'statuses'));
//查询所有数据
User::all();
//分页查询
User::paginate(10);//模板使用 {!! $users\-\>render() !!} 渲染
//创建数据
User::create($data);
//更新数据
$user->update($data);
//删除数据
$user->delete();
//存入一条缓存的数据
session()->flash('success','welcome , going!!!');
//跳转重定向并赋值变量
return redirect()->route('users.show', [Auth::user()]);
//返回上一次提交的内容
return redirect()->back()->withInput();
//登录拦截跳转到之前访问的页面
$fallback = route('users.show', Auth::user());
return redirect()->intended($fallback);
//日期友好化处理,XXX之前
$status->created_at->diffForHumans()
/**关注用户 与 不插入重复数据,
* `sync`方法会接收两个参数,第一个参数为要进行添加的`id`,
* 第二个参数则指明是否要移除其它不包含在关联的`id`数组中的`id`,
* `true`表示移除,`false`表示不移除,默认值为`true`。
* */
$user->followings()->attach([2])//可重复数据关注
$user->followings()->sync([3], false)//不重复关注
$user->followings()->detach([2,3]);//取消关注
$user->followings()->allRelatedIds()->toArray();//查看关注
```
## Auth 授权操作方法
```
//授权操作 $credentials 接收参数(帐号密码)。remember:记住我
if (Auth::attempt($credentials, $request->has('remember'))) {
session()->flash('success', '欢迎回来!');
return redirect()->route('users.show', [Auth::user()]);
} else {
session()->flash('danger', '很抱歉,您的邮箱和密码不匹配');
return redirect()->back()->withInput();
}
```
## 中间件的使用
```
public function __construct()
{
$this->middleware('auth', [
'except' => ['show', 'create', 'store']
]);
//只让未登录用户访问注册页面:
$this->middleware('guest', [
'only' => ['create']
]);
}
```
## 授权策略
```
//创建授权策略
$ php artisan make:policy UserPolicy
/** 授权策略添加方法
* 第一个参数默认为当前登录用户实例
* 第二个参数则为要进行授权的用户实例
* */
public function update(User $currentUser, User $user)
{
return $currentUser->id === $user->id;
}
```