laravel基礎--9.2 表格demo-新增數據、操作狀態提示

創建方法

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">&times;</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">&times;</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 裏的一次性數據銷燬

發佈了76 篇原創文章 · 獲贊 5 · 訪問量 9227
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章