前台網頁的操作不外乎就是靜態頁面view,下操作後
將參數傳遞給Controller(邏輯)判斷後發送給api,
得到回應結果,再將結果整理丟給view過程
以下實作view與Controller傳遞參數簡單範例
這邊簡單做一個login
1.在view準備一個叫loginEx.blade.php
尾巴有blade字眼才可使用Laravel自訂義一些方法
像底下代碼form改由{{ Form::open(array 就是
<html>
<head>
</head>
<body>
{{ Form::open(array('action'=>'LoginCheckController@check', 'method' => 'post')) }}
<div >
<div>
account:<input type="text" class="form-control" id="" name="acc"/>
pwd: <input type="password" class="form-control" id="exampleInputPassword1" name="pwd"/>
<button type="submit" class="btn btn-default">Submit</button>
</div>
</div>
{{ Form::close() }}
<!-- input type 屬性可參考 -->
<!-- http://www.w3schools.com/tags/att_input_type.asp -->
<?php
$msg = Session::get('msg');
if( $msg =="Success")
{
echo "loginSuccess";
}
if( $msg =="Fail")
{
echo "something wrong";
}
if (Session::has('message'))
{
Session::forget('message');
}
?>
</body>
</html>
{{ Form::open(array('action'=>'LoginCheckController@check
是Laravel自訂義方法呼叫 Controller中的方法,將原本form中的name參數帶入
,而待會從 Controller回傳回來時是以session型態回傳
2.在Controller準備一隻叫 LoginCheckController.php
<?php
class LoginCheckController extends BaseController {
public function check()
{
/* $acc = Input::get("acc");
$pwd = Input::get("pwd"); */
$rules = array(
'acc' => 'required|alphaNum|min:5',
'pwd' => 'required|alphaNum|min:6'
);
$validator = Validator::make(Input::all(), $rules);
if ($validator->fails()) {
$output = "Fail";
return Redirect::to('loginEx')->with('msg', $output);
}else{
/* {....call login api } */
$success = true;
if($success)
{
$output = "Success";
return Redirect::to('loginEx')->with('msg', $output);
}else{
$output = "Fail";
return Redirect::to('loginEx')->with('msg', $output);
}
}
Controller接值使用Input::get("acc");
並且對 所有Input參數做驗證 Validator::make(Input::all()
required|alphaNum|min:5
意義為必要輸入,且為字母數字,最小長度5
判斷成功與否會透過br /> return Redirect::to('loginEx')->with('msg', $output);
將結果回應至目標頁面
沒有留言:
張貼留言