zoukankan      html  css  js  c++  java
  • 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上加上 [],要不如果提交多个的话,,只能收到最后一个
     
  • 相关阅读:
    [C++][编程风格]C++命名规则
    [Android]搜索关键字飞入飞出效果 (转)
    android,性能优化,内存优化管理,高级缓存 (转)
    Java内存泄露原因详解
    Java之线程(2) 调时器
    Java之线程(1) 传统线程机制的回顾
    Hibernate(1) 阻抗不匹配
    No4.传统线程同步通信技术
    Android内存溢出
    MAT Memory Analyzer Tool 插件装配(图解)(转)
  • 原文地址:https://www.cnblogs.com/zhuchenglin/p/6535255.html
Copyright © 2011-2022 走看看