laravel学习前期遇到的小知识点(1)

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

1 Route::group([‘middleware‘=>[‘admin.login‘],‘prefix‘=>‘admin‘,‘namespace‘=>‘Admin‘],function(){
2     Route::get(‘index‘,‘[email protected]‘);
3     Route::get(‘info‘,‘[email protected]‘);
4     Route::get(‘quit‘,‘[email protected]‘);
5     Route::any(‘pass‘,‘[email protected]‘);
6     Route::resource(‘category‘,‘CategoryController‘);
7     Route::post(‘cate/changeorder‘,‘[email protected]‘);
8 });

‘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传不过去 会报错的、

  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‘);  看图:

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

 1 @extend(‘admin‘){{--你保存相同的那个文件后缀.balde.php不用填写--}}
 2 @section(‘content‘){{--之前定义的不相同的文件变量名--}}
 3
 4
 5 <div>这里是html不同的</div>
 6 <p></p>
 7 <script></script>
 8
 9
10 @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‘,‘‘) 即可

]

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

1 Route::get(‘admin/test‘,‘[email protected]‘);

然后在用 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 类似这写的等等都要添加。所以使用phpstrom开发还是很方便,不过wim10下phpstrom 输入法不跟随光标日了狗了,一直在右下角呆着..看起来真难受)

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

连表操作:

  

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

还有就是使用 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操作查看文档吧。我只是一个文档搬运工、就是多了点自己的黑白色彩

时间: 2024-08-06 16:00:30

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

开始学习C#的一些小知识点

输出: Console.WirteLine("hello world"); string a="hello world"; Console.WirteLine(a); string a="world"; Console.WirteLine("hello"+a); string a="hello world"; Console.WirteLine(a); 可以在 { } 字符之间放置一个变量,以告诉 C# 将

ios基础-小知识点收集(1)

不积跬步,无以至千里;不积小流,无以成江海.----荀子 收集学习ios中的小知识点,每天进步一点点. (一)@class和 #import class:只声明类,不会引入类文件,加快编译速度,防止类相互import出错:在m中仍然需要import整个类文件. import导入整个类文件,在需要使用类中的变量.函数和协议的时候需要使用. (二)静态变量static.全局变量extern.局部变量.实例变量 static:为整类而非单个对象使用,隐藏封装在类中,对外不可见. 静态变量的优点: 1.

记录神经网络中一些小知识点

记录神经网络中一些小知识点 1 Caffe中的blob维度 Caffe中的blob具有4个维度,分别是num,channel,width和height: 其中我们在定义各个网络层时,常用到的一个参数numout,就是指定的channel: 比如说,维度为1*3*5*5的数据输入网络(即每次输入一张5*5大小的3通道图),经过一个stride为2,pad为1,kernel为2,numout为2的卷积层后,维度就变成了1*2*3*3: 假如输入有n个通道,计算时,caffe就会对应产生n个filte

初学MySQL中的一些小知识点

写在前面,小弟初用博客记录学习路上的一点点小知识点,其中可能有个人理解方面的误差,或不明白的地方.希望各位大牛纠正指导,小弟感激不尽!这并不是什么帮助别人解决问题的文章,只是小弟将学习到的内容一一写在博客上,这样方便以后复习,还恳请大家勿喷.. 一.进入MySQL客户端 1.客户端可以通过.../MySQL/bin目录下的sql.exe运行客户端. 1.1:访问方式一: -u root -p /*可以直接在这段代码的后面添加密码,也可以按回车后再输入密码*/ 1.1:访问方式二: --host

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

今天在学习input的value值时,发现这么一个小知识点,以前理解不太透彻. [1]以下这种情况,是常见的情况,会弹出“测试内容” <input type="button" value="测试内容" onclick = "alert(value)"> [2]心想,这种情况下value找不到,作用域链应该到document了,应该弹出“123",但情况是弹出空 <script> var value=123; &l

LARAVEL学习--安装

之前一直使用Codeignitor框架进行PHP的开发,Codeignitor是一个非常优秀的框架,上手简单,文档极其友好,流行程度甚高(这带来了很好的社区支持+云环境支持),很轻量,可扩展性佳,性能也不错.但它有两个问题: 1.快糙猛(当然这也是PHP的本来特点),不够优雅(有悖最佳实践),也有点老了(CI 2也一样),跟不上新的行业标准(PSR-0/Composer) 2.前景堪忧,CI作者已经放弃更新了. 所以我重新搜索了当今流行的PHP框架. Sitepoint网站做了一个小的调查,看看

一些零碎小知识点积累随笔

工作学习期间的一些零碎小知识点积累 1.蜂鸣器 1)有源蜂鸣器,这里的有源不是指电源的"源",而是指有没有自带震荡电路,有源蜂鸣器自带了震荡电路,一通电就会发声: 2)无源蜂鸣器则没有自带震荡电路,必须外部提供 2~5Khz 左右的方波驱动,才能发声. 2.Altium Designer Winter 9 1)加载库 a.加载库,在Libraries面板上点击Libraries按钮或者选择菜单Design-->Add/Remove Library,这样可使用的库就显示在对话框中.

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

<PHP框架Laravel学习>已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201735.html 文章 Laravel教程:laravel 4安装及入门 Laravel4中文手册下载 Laravel配置教程 Laravel生命周期介绍 Laravel路由教程 Laravel请求和输入 Laravel响应和视图 Laravel控制器 PHP开发框架Laravel数据库操作方法总结 Laravel框架数据库CURD操作.连贯操作总结 L

对日编程的一些小知识点

在GitHub上有个项目,本来是作为自己研究学习.net core的Demo,没想到很多同学在看,还给了很多星,所以觉得应该升成3.0,整理一下,写成博分享给学习.net core的同学们. 项目名称:Asp.NetCoreExperiment 项目地址:https://github.com/axzxs2001/Asp.NetCoreExperiment 今天先分享几个对日编程的小知识点 1.关于BOM(Byte Order Mark)知识点( https://baike.baidu.com/i