# 操作方法
## 基本操作方法
```
//渲染視圖 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;
}
```