Laravel Basics - fantasy0107/notes GitHub Wiki
Requests
Cookie
如何產生cookie
//範本
$cookie = cookie('cookieName', $value, $minutes);
//範例
$cookie = cookie('book', 'Harry Pooter', 120);
注意
必須要
1.return redirect()->withCookie($cookie)
2.return response('Hello World')->cookie($cookie);
上述兩種其中一種回傳才會真正的建出cookie
Validation
Validation解釋
驗證從外部而來的資料 ex: form, header ....
如何使用validate
Request 提供
驗證request的內容
成功會繼續執行
失敗會丟出錯誤
use Illuminate\Http\Request;
/**
* Store a new blog post.
*
* @param Request $request
* @return Response
*/
public function store(Request $request)
{
$validatedData = $request->validate([
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
// The blog post is valid...
}
手動產生
use Validator;
$validator = Validator::make($request->all(), [
'title' => 'required|unique:posts|max:255',
'body' => 'required',
]);
if ($validator->fails()) {
return redirect('post/create')
->withErrors($validator)
->withInput();
}
// Store the blog post...
驗證規則
required -> 一定要出現在input中且不可以為空
present -> 一定要出現在input中但可以為空
size -> string代表多少字/numeric代表數字大小/array代表元素有幾個/files代表檔案有幾KB
檔案命名
1.檔案放置在Validators目錄底下
2.class命名 table name + Validator(檔案名稱也一樣)
3.method命名 validate + column name
其它
代表陣列中所有的key ex: user.
.代表某個key ex: user.id
取得是哪個規則錯誤
要先$validate->fails()才會出現$validate->failed()
$validate = Validator::make($inputs, $rules);
$validate->failed()
Rule
use Illuminate\Validation\Rule;
key是和table內的
丟出和request->validate() 一樣的錯誤格式
//Laravel
use Illuminate\Validation\ValidationException;
try {
$user = User::where('email', '=', $request->input('email'))->firstOrFail();
} catch (\Exception $e) {
throw ValidationException::withMessages([
'email' => [trans('auth.failed')],
]);
}
postman記得設定
content-type: application/json
accept: application/json