laravel5.2 上手心得-笔记一

来源:互联网 发布:mac 翻墙 知乎 编辑:程序博客网 时间:2024/06/05 08:37

laravel5.2 初次上手,需要注意之处:

       1.表单提交数据需要加csrf验证,验证方式为在<form></form>表单中间添加  {{csrf_field()}}  否则会报错,为何要加这个,laravel学院有说明 csrf 跨站攻击。

<form action="/admin/user_login" method="post">    {{csrf_field()}}    <input type="text" name="username" class="username" placeholder="请输入用户名">    <input type="password" name="password" class="password" placeholder="请输入密码">    <input type="text" name="verCode" class="password" placeholder="请输入验证码">    <button type="submit">登录</button>    <div class="error"><span> </span></div></form>


2.可以使用{{URL::asset()}} 的方式或者{{asset()}}的方式访问根目录下的public 文件夹,前提是已经配置了虚拟主机站点,站点根目录为public/同级目录,而且server.php改为了index.php.


<script src="{{ URL::asset('/public/admin/js/jquery-1.8.2.min.js')}}"></script><script src="{{ URL::asset('/public/admin/js/supersized.3.2.7.min.js')}}"></script><script src="{{ URL::asset('/public/admin/js/supersized-init.js')}}"></script><script src="{{ URL::asset('/public/admin/js/scripts.js')}}"></script>


3.session 的默认使用方式被关闭,要想使用$_SESSION['name']=$name,的方式给session赋值,需要在入口文件,index.php文件中开启session,session_start().


<?php/** * Laravel - A PHP Framework For Web Artisans * * @package  Laravel * @author   Taylor Otwell <taylorotwell@gmail.com> */session_start();//手动开启session$uri = urldecode(    parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));// This file allows us to emulate Apache's "mod_rewrite" functionality from the// built-in PHP web server. This provides a convenient way to test a Laravel// application without having installed a "real" web server software here.if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {    return false;}require_once __DIR__.'/public/index.php';


4.模板文件中的链接地址不建议直接写路由,用laravel提供的url()方法.

   例如不建议如下写法:

<div  style="margin-right:150px"> <img src="/admin/veri_code"></div>
  这种写法被解析成:
    <div  style="margin-right:150px"> <img src="/admin/veri_code"></div>


建议:
<div  style="margin-right:150px"> <img src=" {{url('/admin/veri_code')}}"></div>
这种写法会被解析成:
          <div  style="margin-right:150px"> <img src=" http://www.ad.com/admin/veri_code"></div>
5. 在使用php artisan 命令的时候,如果希望在Http\Controllers目录下创建类似Admin的表示后台管理的目录可以直接带路径,创建控制器,但是记得得是反斜杠 \例如:
php artisan make:controller Admin\IndexController  。此时会在Http\Controllers目录下的Admin 目录创建Index控制器。
6.在使用中间件的时候,按照5.2的文档说明,在Route::group();加载的时候已经被加载了web中间件,如果使用的是mvc带页面开发而不是接口开发的话,会报如下错误:
   

FatalErrorException in View.php line 3:Maximum function nesting level of '100' reached, aborting!

原因是php底层函数调用操过了100次,可以通过修改 php.ini添加  xdebug.max_nesting_level=600,解决。
不过只要不加载web就可以了。
例如如下对比:
/*需要验证登录的组*/Route::group(['middleware'=>['web','admin.login']],function(){    Route::get('/admin/index','Admin\IndexController@index');});
这种会报错。
/*需要验证登录的组*/Route::group(['middleware'=>['admin.login']],function(){    Route::get('/admin/index','Admin\IndexController@index');});
这种不会。



2 0
原创粉丝点击