創建方法
public function create(Request $request){
if($request->isMethod('POST')){
$data = $request->input('Student');
//使用create方法 涉及批量賦值 先設置黑名單($guarded) 或白名單 ($fillable)
if(Student::create($data)){
return redirect('student/index')->with('success','添加成功') ;
}else{
return redirect()->back() ;
}
}
return view('student.create');
}
public function save(Request $request){
$data = $request->input('Student');
$student = new Student();
$student->name = $data['name'];
$student->age = $data['age'];
$student->sex = $data['sex'];
if($student->save()){
return redirect('student/index') ;
}else{
return redirect()->back() ;
}
//return view('student.create');
}
創建模板
@extends('common.layouts')
@section('content')
<!-- 自定義內容區域 -->
<div class="panel panel-default">
<div class="panel-heading">新增學生</div>
<div class="panel-body">
{{--<form class="form-horizontal" method="post" action="{{ url('student/save') }}">--}}
<form class="form-horizontal" method="post" action="">
{{-- CSRF 保護--}}
{{ csrf_field() }}
<div class="form-group">
<label for="name" class="col-sm-2 control-label">姓名</label>
<div class="col-sm-5">
<input type="text" name="Student[name]" class="form-control" id="name" placeholder="請輸入學生姓名">
</div>
<div class="col-sm-5">
<p class="form-control-static text-danger">姓名不能爲空</p>
</div>
</div>
<div class="form-group">
<label for="age" class="col-sm-2 control-label">年齡</label>
<div class="col-sm-5">
<input type="text" name="Student[age]" class="form-control" id="age" placeholder="請輸入學生年齡">
</div>
<div class="col-sm-5">
<p class="form-control-static text-danger">年齡只能爲整數</p>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">性別</label>
<div class="col-sm-5">
<label class="radio-inline">
<input type="radio" name="Student[sex]" value="10"> 未知
</label>
<label class="radio-inline">
<input type="radio" name="Student[sex]" value="20"> 男
</label>
<label class="radio-inline">
<input type="radio" name="Student[sex]" value="30"> 女
</label>
</div>
<div class="col-sm-5">
<p class="form-control-static text-danger">請選擇性別</p>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
</div>
</div>
@stop
創建路由
Route::group(['middleware'=>['web']],function(){
Route::get('student/index',['uses'=>'StudentController@index']);
Route::any('student/create',['uses'=>'StudentController@create']);
Route::any('student/save',['uses'=>'StudentController@save']);
});
消息模板改造
<!-- 成功提示框 -->
@if(Session::has('success'))
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>成功!</strong> {{Session::get('success')}}
</div>
@endif
<!-- 失敗提示框 -->
@if(Session::has('error'))
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<strong>失敗!</strong> {{Session::get('error')}}
</div>
@endif
帶一次性 Session 數據的重定向
重定向到一個新的 URL 並將數據存儲到一次性 Session 中通常是同時完成的,爲了方便,可以創建一個 RedirectResponse 實例然後在同一個方法鏈上將數據存儲到 Session,這種方式在 action 之後存儲狀態信息時特別方便
Route::post('user/profile', function () {
// 更新用戶屬性...
return redirect('dashboard')->with('status', 'Profile updated!');
});
用戶重定向到新頁面之後,你可以從 Session 中取出並顯示這些一次性信息,使用 Blade 語法實現如下(關於 Blade 模板使用我們會在後續教程詳細討論):
@if (session('status'))
<div class="alert alert-success">
{{ session('status') }}
</div>
@endif
注:這個一次性體現在從 Session 取出數據之後,這些數據就會被銷燬,不復存在。
添加成功
刷新頁面 session 裏的一次性數據銷燬