1.  目前我用的laravel 5.2.36版本web中间件成为全局中间件(不知道从5.2.26以上就改变了还是怎样,没有深究),也就是之前的版本路由里默认会有一个Route::group的web中间件组,然后看上面有段注释大致意思就是加入web中间价组受到csrf保护?那目前我用的5.2.36这个版本取消了下面的默认的web中间件组,即便把整个项目都添加到web中间件里。看起来还是挺方便,所以添加中间件组的时候不用再次定义一遍web中间件组。例子:

 Route::group(['middleware'=>['admin.login'],'prefix'=>'admin','namespace'=>'Admin'],function(){
     Route::get('index','IndexController@index');
     Route::get('info','IndexController@info');
     Route::get('quit','LoginController@quit');
     Route::any('pass','IndexController@pass');
     Route::resource('category','CategoryController');
     Route::post('cate/changeorder','CategoryController@changeorder');
 });

'middleware'=>['admin.login'] 这个中间件里面就不用在添加web中间件。之前的版本都要这样写:'middleware'=>[‘web’,'admin.login'],所以还是比较方便。//自己添加中间件的时候不要忘了在routes.php同级目录下的Kernel.php 

  2.  还有就是csrf验证,通俗点说就是防跨站攻击、大致意思 就是 每一个表单都会发送一个token,token就是一大串字符串。我是这样理解csrf的 [ 比如说你要登陆一个网站的后台,然后表单都会附带一个随机的token值发送给后台来验证是否有效。然后才允许你登陆进去] 那么如何添加token呢? 平常的前端html文件在laravel 使用的是blade模版引擎。然后随便说下。laravel前端的文件存在在哪、resources/views  这目录下 然后里面的html文件,改为blade模版引擎的话,要修改后缀为 index.blade.php  然后在路由里分配一个视图就可以看到了、或者在分配一个控制器。在控制器里面分配视图也都是可行的。我觉得blade模版在laravel中还是非常方便不得不感叹框架原来如此方便,哈哈 [ 我也是第一次学框架,TP也挺火的。然后我没有学TP就直接学了laravel] 、扯远了。然后先把csrf 验证如何给做到再说其他的、比如说这个index.blade.php 前端文件下有一个后台登陆的表单,你可以在表单里面添加{{csrf_field()}} 即可,文档上{!!csrf_field()!!}这样也可以、还有其他的直接添加input的我就不说了,自行看文档。官方文档才是学习最重要的、我这里只是帮助大家还有自己记忆一下、

忘了说一点就是使用表单的时候路由尽量使用 Route::any('','')  不然有些get方法或者post传不过去 会报错的、还有一点就是需要用到 session 的时候别忘了在入口文件 public/index.php 的最顶部开启它:session_start();

  3.  顺便说下blade模版引擎吧,blade注释方法上面也看到了{{--我是注释哦--}},然后下面那个 {{url('admin/code')}}这个是引用了一个验证码类、就是别人封装好的验证码,拿过来直接用 [拒绝偷懒从大家做起],然后这个就是 blade模版引擎的url引用方式。

   还有一点就是。我这个版本的laravel里面的引用的js css 、img等这些文件如果你要用 blade模版引擎里 asset 的话就是 

{{asset('style/index.css')}} 这些链接都会被laravel 指引到public入口文件下面。意思就是说你要用到asset引用的css js img等等文件都要放到public目录下,然后5.2.2X的版本的话可以直接放在你想要的目录都可以的。别人说是入口文件的问题,也可以修改。具体没有深究。等把laravel基本知识点学完了在深究它、

   再说一个blade模版引擎用共同文件的方法,( 头部和底部 ),比如说你的头部和底部是同样的,那么在blade使用方法:

打个比方你的前端的目录都在views下。只需要你把相同的文件保存在一个文件里面并放到同级目录下。比如说你这文件保存为admin.blade.php.  然后里面不一样的内容添加 @yield('content');  看图:

然后在其他文件需要用到的文件中 这样写:

 @extend('admin'){{--你保存相同的那个文件后缀.balde.php不用填写--}}
 @section('content'){{--之前定义的不相同的文件变量名--}}

 <div>这里是html不同的</div>
 <p></p>
 <script></script>

 @endsection

如果你保存的相同文件下存在一个目录里:你要这样写@extend('ever.admin') //注意不能使用 /

可见blade还是挺有讲究的 每小段代码也都有@endif 类似的结束语句。 blade还可以使用 @if     @else{}   @endif    ;这样的类似。还可以使用@foreach 遍历 三元运算符 等等等 ——具体点我去文档更详细的介绍

  4.  说下连接数据库吧,laravel 连接数据库先去修改 .env 文件

DB_PREFIX=blog_这个是表前缀、如果想要在.env里使用的话。要到config/database.php下 找到

'mysql'=[

//一些mysql信息

'prefix' => ''  //修改为:'prefix' =>env('DB_PREFIX',' ') 即可

]

先用路由随便分配一个控制器在里面操作演示:

 Route::get('admin/test','IndexController@index');

然后在用 php artisan make:controller IndexController创建控制器即可。

添加一下内容。

 public function index(){
     $PDO = DB::connection()->getPdo();
     dd($PDO);//这个dd()和print_r();效果一样
 }

然后进入admin/test 会打印一些PDO这个对象..等等一些信息. 即表示连接成功。报错的话,

    如果你使用的编辑器不是phpstrom 的话。你的命名空间可能不会自动加载进来。也就是上方的

 use Illuminate\Support\Facades\DB      (这个很容易遗漏,phpstrom编辑器里打出 DB 代码提示出直接回车会自动帮你加载 而且之后获取的要使用的Input 类似这写的等等都要添加。[ 注意目前这个版本使用 Validator验证器的时候 引用的 use Illuminate\Validation\Validator; 同样会报错 ,直接 use Validator 即可解决 ] 。用phpstrom开发还是很方便,不过wim10下phpstrom 输入法不跟随光标日了狗了,一直在右下角呆着..看起来真难受    已解决:使用搜狗输入法智慧版)

  如果还是报错的话。看看.env文件修改了没。

连表操作:

 public function index(){
   $table = DB::table('user')->get();
  dd($table);
 }
  public function index(){
    $table = DB::table('user')->where('user_id',1)->get();//table('表名'),如果你配置表前缀后不需要添加前缀。添加条件 我只要字段user_id 为1的数据
   dd($table);
  }

还有就是使用 Eloquent ORM 控制数据库,也挺方便的:

laravel默认的Model/User.php 可以控制和修改数据库的表名等等。不然laravel的外国佬会给你添油加醋的给你后缀加上 s 啊。等等... 所以在模型里可以自行定义:

 class User extends Model
 {
     protected $table = 'user';//设置表名
     protected $primaryKey = 'user_id';//设置主键
     public  $timestamps = False;//禁用默认时间戳,防止执行updata()等更新操作报错
 }

然后在控制器里面使用 User:: 来控制数据库就可以了。别忘了有没有自动引入加载命名空间。

 public function index(){
 $table = User::find(1);
 $table->user_name='秋田嘉';
 $table->update();
 dd($table);
 }

还有更多关于 Eloquent ORM操作查看文档吧。我只是一个文档搬运工、就是多了点自己的黑白色彩

laravel学习前期遇到的小知识点(1)的更多相关文章

  1. 刚接触Linux,菜鸟必备的小知识点(一)

    身为一个将要大四的学生,而且还是学计算机的没有接触过linux简直是羞愧难当.这个假期做了一个软件测试员,必须要熟悉linux的操作,所以对于我这个菜鸟我也就说几点比较重要的小知识点吧. 第一.cd指 ...

  2. js中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" v ...

  3. 编程入门视频【 Python、PHP、ThinkPHP、Laravel、Mysql、微信小程序】

    免费分享 Python.PHP.ThinkPHP.Laravel.Mysql.微信小程序等学习视频 点击进入搜刮 免费分享 Python.PHP.ThinkPHP.Laravel.Mysql.微信小程 ...

  4. 深入了解webpack前,可以了解的小知识点。

    阅读前:文章大概是写,简单用过webpack,想继续深入了解webpack前需要了解的知识.但文章内容跟webpack使用关系并不大. 文章概要: Object.defineProperty call ...

  5. javascript中关于value的一个小知识点(value既是属性也是变量)

    今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻 [1]以下这种情况是常见情况,会弹出“测试内容” <input type="button" va ...

  6. 《PHP框架Laravel学习》系列分享专栏

    <PHP框架Laravel学习>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201735.html 文章 Laravel教程:l ...

  7. Java并发编程学习前期知识下篇

    Java并发编程学习前期知识下篇 通过上一篇<Java并发编程学习前期知识上篇>我们知道了在Java并发中的可见性是什么?volatile的定义以及JMM的定义.我们先来看看几个大厂真实的 ...

  8. Java学习过程中的总结的小知识点(长期更新)

    Java学习过程中的总结的小知识点 (主要是自己不会的知识和容易搞错的东西) 计算某个程序运行的时间 long stime=System.currentTimeMillis(); copy3(file ...

  9. 【转】HTML5的小知识点小集合

    html5的小知识点小集合 html5知识   1.  Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于<h ...

随机推荐

  1. hdoj 1787 GCD Again【欧拉函数】

    GCD Again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  2. nyoj 1036 非洲小孩【贪心区间选点】

    非洲小孩 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 家住非洲的小孩,都很黑.为什么呢?第一,他们地处热带,太阳辐射严重.第二,他们不经常洗澡.(常年缺水,怎么洗 ...

  3. Oracle的OFA架构

    最优灵活体系结构(Optimal Flexible Architecture,简称OFA) OFA其实就是一种Oracle的一种规范,其意义就是用一种统一的给文件和文件夹的规则,和文件存放目录的规则做 ...

  4. Win8控制面板快捷键

    Win8系统相比我们已经熟悉的Win7与XP系统有着一些特殊的变化,导致很多初次使用Win8系统的朋友感觉有点吃力,随着Win8系统即将于几天后正式发布,下面本文与大家分享大家比较关心的Win8控制面 ...

  5. 使用val()方法设置表单中的默认选中项

    有时候我们展示给用户的表单中的checkbox,radio,selec等标签的一些项是默认选中的.比方:当用户改动文章的时候,假设相应的栏目为下拉框的话,那么它的默认选中值应该是原来的栏目位置. 能够 ...

  6. Day02 - Python 基本数据类型

    1 基本数据类型 Python有五个标准的数据类型: Numbers(数字) String(字符串) List(列表) Tuple(元组) Dictionary(字典) 1.1 数字 数字数据类型用于 ...

  7. Android开发之使用活动显示对话框

    利用活动显示对话框,需要重写Activity中的onCreateDialog()方法,以此来显示一个对话框窗口. 效果如下: 实现代码如下: package com.example.dialog; i ...

  8. h5宣传页制作过程中遇到的问题

    音乐播放 ios下关闭不流畅; (ios下需重新image 模拟) 音乐设置自动播放属性后 部分机型下不能自动播放.目前解决方案: touchstart时触发播放 微信“分享给朋友”点击发送后,页面卡 ...

  9. RHEL7单独安装图形X11

    RHEL7 默认是最小化安装(Minimal Install),没有图形界面,我们应该选择Server with GUI.若已错过此步骤,我们采用以下方式补充安装GUI界面. # yum group ...

  10. H TML5 之 (6)下雨效果

    在对HTML5进行研究之后,有了一点想法,思考出游戏其实感觉就是四个步骤 1.创建一个你需要的对象,赋予属性(一些影响方法的属性),方法(运动,叫....) 2.实例化这个对象,让它成为一个或者多个个 ...