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

Laravel5.5 validation rule

檔案命名

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