laravel初次學習總結及一些細節


最近學習了laravel,先簡單談談學習的感受吧

 

剛開始一周多一點的時間先把laravel的開發文檔看了一遍,,感覺剛開始接觸時的感覺laravel的目錄與thinkphp又不一樣,它們的渲染模板的方式也不一樣,模型的功能又比thinkphp的強大了許多,但是最厲害的地方的是它支持composer安裝許多的模塊,簡單方便。在laravel的文檔中,學到了門面(接口)和契約(接口),還知道了中間件,csrf保護和blade視圖模板及laravel驗證(過濾進入應用的 HTTP 請求提供了一套便利的機制)

 

在學習完laravel5.3之后,自己寫了個個人博客,寫的時候用到的技術也不多,主要原因是:1.練練手,2.服務器一直空閑着

 

在寫的時候遇到了一些坑:

1、laravel的php與前台交互:

注意:這些都沒有定義路由名稱,如果使用 as 定義了路由名稱的話,可以使用route()函數來代替url函數

(1)表單:
例:

前台表單:

向定義路由為search_find_blogs  的方法中提交數據:

<form action="{{url('search_find_blogs')}}" method="post">
    {{csrf_field()}}
    <input required="required" type="text" name="blog_name_search" value="Search Blog By name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Search Blog By name';}">
    <input type="submit" value="">
</form>

這個后台處理過后就得通過改變向前台渲染的參數來響應前台

(2)js的ajax,向路由為

例:

function post_form(operate){
    $.post("{{url('admin_link_operate')}}",{_token:"    {{csrf_token()}}",links_id:get_links_id(),operate:operate},function(data){
    alert(data);
    location.reload();
    });
}

這樣方法台只需要返回數據就前台就可以直接接收到了

2.利用js向后台提交文件

表單:

<form id="{{$album->album_id}}album_form">
{{ csrf_field() }}

  <input type="file" id="{{$album->album_id}}album_cover" class="btn btn-warning" disabled="true" name="album_cover">

</form>

js:

var formData = new FormData($('#'+album_id+'album_form')[0]);
    $(this).attr('value','編輯');
    $.ajax({
        url: "{{url('admin_album_edit')}}",  
        type: 'POST',  
        data: formData,
        //設置同步方式 
        async: true,
        //不會從瀏覽器緩存中加載信息  
        cache: false,  
        //默認值為contentType = "application/x-www-form-urlencoded".在默認情況下,內容編碼類型滿足大多數情況。在 ajax 中 contentType 設置為 false 是為了避免 JQuery 對其操作,從而失去分界符,而使服務器不能正常解析文件
        contentType: false,  
        //默認值為true,當設置為true的時候,jquery ajax 提交的時候不會序列化 data,而是直接使用data
        processData: false,
        success: function(d){
            alert(d);
            location.reload();
        }  
    });

 

laravel的controller部分還是用$request->file('file_name')來獲得文件

 

3. 

如果使用laravel5.3的模型的自動維護時間,,數據庫的時間存儲為時間戳timestamp或datetime類型,,如果存成int類型,則會出錯

 

4.在blade模板中如果遇到解析不正確的話可以使用 {{ }} 或{!! !!}

 

5.

在laravel中如果出現了向后台提交數據不對的情況,一定要先檢查是否向后台提交了 _token':'{{csrf_token()
 
6.
上傳文件的時候,在form表單上一定要加上enctype="multipart/form-data"屬性,,要不然文件傳不過去
 
 
7.
在form表單提交checkbox時,,要將其name上加上 [],要不如果提交多個的話,,只能收到最后一個
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM