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上加上 [],要不如果提交多个的话,,只能收到最后一个

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据的力量

Excel文件受损基本急救方法四则

22814
来自专栏Jerry的SAP技术分享

删除所有正在运行和退出的docker实例

使用这个命令,把docker ps -aq产生的输入作为输入传入到docker rm命令,达到删除所有容器实例的效果。

800
来自专栏同步博客

自定义搭建PHP开发环境

  3、将安装包准备好。http://pan.baidu.com/s/1mhxEPkc

1691
来自专栏IT综合技术分享

一、搭建SpringBoot2.0.0M4基础Web项目

SpringBootDemo1 - [~-IdeaProjects-SpringBootDemo1] - IntelliJ IDEA 2017.2.4_022....

2852
来自专栏Python疯子

iOS 之多个 button 的单选与多选

下面是实现的代码: 首先创建10个button(一个一个写太麻烦了,个人认为还是用一个 for 循环来创建比较好)

991
来自专栏web编程技术分享

【php增删改查实例】第二十三节 - PHP文件上传22. PHP文件上传

2114
来自专栏Python自动化测试

python自动化环境搭建

selenium是测试web应用程序的框架,selenium为没有测试脚本的人提供了(seleniumide)提供了录制/回放的工具,同时它也提供了特定...

1703
来自专栏腾讯云实验室

搭建微信订阅号后台

腾讯云提供了开发者实验室帮助用户搭建微信订阅号后台,教程内容如下,用户可以点击开发者实验室快速上机完成实验。

9774
来自专栏DeveWork

WordPress 一键关闭/禁止页面评论功能

WordPress 中页面都是默认开启批量功能的,对于一些特殊的网站,可能需要禁止所有的页面的评论功能;一个个去页面编辑页面去禁止固然可以,但是页面一多的话那就...

1986
来自专栏移动端周边技术扩展

.a VS .framework VS .dylib

2435

扫码关注云+社区

领取腾讯云代金券