laravel中遇到的坑
已经遇到的坑和未来可能遇到的坑都将在这里写出来:
- 在资源控制器中创建新的方法后(如果资源控制器中的7个方法无法满足你的需求时,你就会创建新的方法),接下来就是创建路由,这个时候注意了,你必须要把路由放在资源路由的上面,否则连firbug都不显示错误。fuck!
Route::get('user/del','Admin\UserController@delAll');//开始我放在下面,找了半天答案,fuck
//全是坑坑坑,,必须是Admin\ 而不能是Admin/
Route::resource('user','Admin\UserController');还有写资源控制器的路由时候,那个斜杠必须时 \ 就是上面代码那样写。
在博客分类中,主键用cate_id排序出错,但是主键换成id,再用find查询数据库就OK了.
出现的是下面错误:
记录一些自己在项目中容易忘记的:
(1)当在项目中引入自己的类或者第三方类文件的时候,不要忘记 composer dump-autoload 不然类是不会起作用的。
(2)User::find() 参数默认是主键id
(3)当需要使用数据库时候,除了配置database.php文件里的mysql相关参数外,不要忘记配置.env文件里的数据库相关参数
(4)模板替换后,要把html改成blade.php不然找不到页面
(5)不能用var_dump()打印$request,太可怕了,内存都不够了。可以用dd()输出$request,正确做法是先$input接受$request->all();再打印$input。
(6)删除的时候,在用ajax发送数据时,因为删除和修改都是post方式,这里容易混淆,记住在data数据里传一个{"_method":"delete"}或者{"_method=delete"}就意味着是访问destroy方法;如果是通过表单提交数据而非ajax,则可以使用{{ method_field('PUT') }}来伪造。删除则用{{method_field('delete')}}
(7)RBAC,修改用户拥有的角色或者修改角色拥有的权限时,一定要先删除原有的数据,不然会导致数据重复。比如一个用户多个重复的角色。(这个和修改某一条数据不同,注意区分)
(8)授权中间件:获取当前请求的路由对应的控制器方法名:\Route::current()->getActionName(); //还有要特别注意的是授权中间件是需要连接数据库的,如果每次访问一个页面查询一次数据库就为了判断是否有权限,很显然性能差,解决方法之一是在用户登录的时候,查询用户拥有的权限,然后把权限存储到session中,这样每次判断用户权限的时候就不需要查询数据库了。
(9)分类排序:因为是遍历的数据,所以应该用行内触发事件,用其他的方式触发不了,应该是它无法识别你改变的是哪一个文本框的值。如果想要获取值,需要在传参的时候,传一个this对象。记住:所有遍历的元素,如果想实现触发事件,都应该使用行内js。
(10)修改文章的时候,由于使用百度编辑器,导致存到数据库的content是带有html标签的,那么显示出来的时候需要去掉html标签,laravel框架中使用 {!! 变量名 !!} 就搞定了!哇塞我查了好半天。{{}}不能把html标签转义,而{!! !!}能够把html标签转义。
(11)修改文章重新上传图片后,要删除原来的图片不需要在控制器方法中做处理,直接在ajax上传成功的回调函数中删除即可。需要在回调函数再次发送ajax,js或者jq是客户端语言,图片是在服务器端,要删除图片必须是服务器脚本语言才能删除。
laravel中遇到的坑的更多相关文章
- Laravel中的日志与上传
PHP中的框架众多,我自己就接触了好几个.大学那会啥也不懂啥也不会,拿了一个ThinkPHP学了.也许有好多人吐槽TP,但是个人感觉不能说哪个框架好,哪个框架不好,再不好的框架你能把源码读上一遍,框架 ...
- Laravel中Redis的使用
安装 laravel中使用redis首先需要你通过 Composer 安装 predis/predis 包: composer require predis/predis 配置 redis的配置文件是 ...
- 整理iOS9适配中出现的坑(图文)
原文: http://www.cnblogs.com/dsxniubility/p/4821184.html 整理iOS9适配中出现的坑(图文) 本文主要是说一些iOS9适配中出现的坑,如果只是要 ...
- laravel中日志为daily时如何设置最大保存天数
在laravel中,日志设置为daily时,默认保存七天的日志,超过则清除七天前的日志.可修改默认的设置,假如要保存30天的日志,则配置如下: 在配置文件config/app.php中添加如下代码: ...
- laravel中的错误与日志
日志 laravel中的日志是基于monolog而封装的.laravel在它上面做了几个事情: 把monolog中的addInfo等函数简化成为了info这样的函数 增加了useFiles和useDa ...
- Nancy总结(二)记一次Nancy 框架中遇到的坑
记一次Nancy 框架中遇到的坑 前几天,公司一个项目运行很久的Nancy框架的网站,遇到了一个很诡异的问题.Session 对象跳转到另外一个页面的时候,session对象被清空了,导致用户登录不上 ...
- 整理 iOS 9 适配中出现的坑(图文)(转)
作者:董铂然 本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着 ...
- laravel中的$request对象构造及请求生命周期
laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...
- cron以及在laravel中使用cron
yum install vixie-cron yum install crontabs /bin/systemctl restart crond.service #启动服务 /bin/systemct ...
随机推荐
- Thinkphp5 自定义上传文件名
这几天在做tp5的上传文件模块,项目需求是要把文件名在上传之后修改为 用户名+原文件名的组合形式,在网上找了一会儿发现好像没有类似的文章...只好自己去研究研究了. 之前查看过看云上面的官方手册,文件 ...
- spark算子篇-repartition and coalesce
我们知道 RDD 是分区的,但有时候我们需要重新设置分区数量,增大还是减少需要结合实际场景,还有可以通过设置 RDD 分区数来指定生成的文件的数量 重新分区有两种方法:repartition and ...
- Unknown custom element: <swiper>
刚开始使用VUE,一直提示这个,后来才发现是注册组件时注册反了:先新建VUE实例再注册组件是问题根源,调转一下顺序即可解决
- Leetcode 杂题
盛最多水的容器 给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) ...
- ef core schema 指定架构
不知道很少使用Schema模型还是怎么,居然搜帖子没人说,虽然很简单但是还是想记录一下坑 命名空间 using System.ComponentModel.DataAnnotations.Schema ...
- 【原创】大叔经验分享(58)kudu写入压力大时报错
kudu写入压力大时报错 19/05/18 16:53:12 INFO AsyncKuduClient: Invalidating location fd52e4f930bc45458a8f29ed1 ...
- 异常-throws的方式处理异常
定义功能方法时,需要把出现的问题暴露出来让调用者去处理.那么就通过throws在方法上标识. package cn.itcast_05; import java.text.ParseException ...
- 异常-try...catch的方式处理异常1
package cn.itcast_02; /* * 我们自己如何处理异常呢? * A:try...catch...finally * B:throws 抛出 * * try...catch...fi ...
- 使用 “Unicode 字符集 ” 使用错误,应该使用 “使用多字节字符集”
“void ATL::CStringT<BaseType,StringTraits>::Format(const wchar_t *,...)”: 不能将参数 1 从“const char ...
- Mongodb安装后在任务管理器中找不到这个服务
今天安装mongodb,但是一开始在任务管理器中找不到这个服务,后来查询得知:稍微高一些的系统是需要通过管理员身份运行cmd命令行安装的. orz,找了好久才知道是这个问题. 2333 在任务管理的服 ...