Laravel相关的一些故障解决

禁止全局csrf认证

在app/Http/Kernel.php中,$middleware表示全局中间件,而$routeMiddleware表示针对某个路由的中间件,所以只需要把csrf在$middleware中注释掉,然后在$routeMiddleware中添加'csrf' => 'App\Http\Middleware\VerifyCsrfToken'
如果要在某个路由上使用就这样:

Route::group(['middleware' => 'csrf'], function(){   // csrf保护的接口
  Route::get('/', 'HomeController@index');
}

处理上传文件

$file = Input::file('upload_file");// 获取上传文件对象
$file->isValid()          // 检验文件是否有效
$file->getClientOriginalName();  // 获取文件原名
$file->getFileName();       // 获取上传后缓存的文件的名字
$file->getRealPath();       // 获取缓存文件的绝对路径
$file->getClientOriginalExtension();// 获取上传文件的后缀
$file->getMimeType();       // 获取上传文件的MIME类型
$file->getSize();         // 获取上传文件的大小

手动清理配置缓存

php artisan config:cache

插入数据的时候出现MassAssignmentException in Laravel错误

需要给数据表设置可访问的字段,在Model里面

protected $fillable = array('字段1', '字段2');

php artisan db:seed出现[ReflectionException] Claxx XXXTableSeeder dows not exist错误

这是因为新增加了文件但是composer没有感知到,需要先执行composer dump-autoload

定义/修改字段类型为timestamp时出现错误:”Unknown column type “timestamp” requested.”

按照[How do I make doctrine support timestamp columns?]的做法,目前最简单的方式是直接用DB::statement()来写SQL语句

POST数据的时候出现The payload is invalid

我遇到这个情况是因为在做复杂的表单提交,直接提取X-XSRF-TOKEN的值,但是由于没有转移,导致后端token揭秘失败

保存model的时候出现错误:Missing argument 2 for Illuminate\Database\Eloquent\Model::setAttribute()

一般是Model的几个属性没有设正确,检查这几个值incrementing/timestamps/primarykey/fillable

队列出现Cannot initialize a MULTI/EXEC transaction over aggregate connections

升级到最新版laravel吧,然后将redis的扩展切换到phpredis,laravel5.3之前自带的predis不支持redis的sentinel,并且有些redis操作强依赖于predis的事务操作,各种纠结,最后都不能成功。或者自己写类似的中间件

Class ‘Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory' not found

偶尔安装了某些个第三方库会出现这种幺蛾子,可以用这种方式解决composer require symfony/psr-http-message-bridge

更新表时出现AH00052: child pid 71 exit signal Segmentation fault (11)

原因可能是没有设置主键而直接在该表上面更新数据,导致ORM不知道到底该更新谁。并且Laravel不支持复合主键(https://github.com/laravel/framework/issues/5517,作者不支持这种做法)。这种情况,要么给该表添加唯一主键,要么只能用where直接更新了

Error while reading line from server

Predis需要设置read_write_timeout=0或者-1,特别是daemon任务,最好设置不超时

PHP Fatal error: Uncaught exception 'ReflectionException' with message 'Class log does not exist' in /Users/freek/dev/laravel/vendor/laravel/framework/src/Illuminate/Container/Container.php

出现于5.2版本中,原因是.env文件中的配置的值,中间存在空格,如果中间有空格,需要将值用双引号包起来

Class env does not exist / Class request does not exist

通常出现在框架还未加载完成就报错,但是在处理错误的时候却使用了env()/request()这个功能,导致没有打印真实的错误。处理方式,一是不要使用app()->environment('...'),而是检查.env文件中是否有错误,例如包含空格的值,必须用双引号包围。我在自定义ExceptionHandler中遇到过几次

The given data failed to pass validation

认证出错却不知道具体错在哪里并且状态码是500,如果有用Dingo API,那么注意Request不要继承use Illuminate\Foundation\Http\FormRequest而应该是use Dingo\Api\Http\FormRequest

Call to undefined method setHidden

注意command的主逻辑不是fire而应该是handle

启动时报错Unknown: failed to open stream: No such file or directory in Unknown on line 0

可能是错误地删除了server.php文件,可以直接自己写一个:

/**
 * Laravel - A PHP Framework For Web Artisans
 *
 * @package Laravel
 * @author  Taylor Otwell <taylor@laravel.com>
 */

$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';

composer install时报错: Please provide a valid cache path

需要手动创建缓存目录,在storage/framwork下面新建sessions、views、cache文件夹即可

总结

到此这篇关于Laravel相关的一些故障解决的文章就介绍到这了,更多相关Laravel故障解决内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Laravel 5 框架入门(一)

    Laravel 5 中文文档: 1. http://laravel-china.org/docs/5.0 2. http://www.golaravel.com/laravel/docs/5.0/ 默认条件 本文默认你已经有配置完善的 PHP + MySQL 运行环境,懂得 PHP 网站运行的基础知识.跟随本教程走完一遍,你将会得到一个基础的包含登录的简单 blog 系统,并将学会如何使用一些强大的 Laravel 插件和 composer 包(Laravel 插件也是 composer 包).

  • 跟我学Laravel之安装Laravel

    安装Composer Laravel框架使用Composer(PHP包管理工具,参考 Composer 中文文档)来管理代码依赖性. 首先,你需要下载Composer的PHAR打包文件( composer.phar ),下载完成后把它放在项目目录下或者放到 usr/local/bin 目录下以便在系统中全局调用.在Windows操作系统中,你可以使用Composer的Windows安装工具. 安装Laravel 通过 Laravel 安装器安装 先下载 Laravel 安装器 PHAR 文件.为

  • 跟我学Laravel之快速入门

    安装 Laravel框架使用 Composer 执行安装和依赖管理.如果还没有安装的话,现在就开始 安装 Composer 吧. 安装Composer之后,你就可以通过命令行使用如下命令安装Laravel了: composer create-project laravel/laravel your-project-name 或者,你可以从 Github仓库 下载.接下来,在 安装Composer 之后,在项目根目录下执行 composer install 命令.该命令将会下载以及安装框架的依赖组

  • Laravel相关的一些故障解决

    禁止全局csrf认证 在app/Http/Kernel.php中,$middleware表示全局中间件,而$routeMiddleware表示针对某个路由的中间件,所以只需要把csrf在$middleware中注释掉,然后在$routeMiddleware中添加'csrf' => 'App\Http\Middleware\VerifyCsrfToken' 如果要在某个路由上使用就这样: Route::group(['middleware' => 'csrf'], function(){ //

  • 始终“正在连接”的无线故障解决方法

    遭遇故障,初步排查 由于无线上网设备的"身价"不断下降,无线组网技术的逐步成熟,越来越多的单位甚至个人家庭都开始选用无线组网方式进行上网了.在尽情享受无线网络给我们带来方便.快捷的同时,我们有时也会遇到一些奇怪无线网络故障的"骚扰",碰到这些无法解决的无线上网故障,大家是不是有点扫兴? 可大家总不能一遇到芝麻大的小故障就去请专业技术人员来处理吧,有些无线网络故障自己动手完全可以顺利解决掉.这不,下面笔者就将自己曾经遭遇到的一例"正在连接"无线网络

  • 联想LJ2500激打处理器报错故障解决方法

    笔者办公室的一台联想LJ2500激光打印机在一次打印文件时突遇停电,来电后打开打印机开关,打印机控制面板的"硒鼓灯"."就绪灯"."警告灯"."数据灯"不停闪烁,并且不能进行正常开机后的硒鼓预热.根据打印机用户手册上提供的故障现象参考表明,这种现象为打印机处理器运行时出错.笔者按照手册中介绍的方法先关闭打印机电源,等待片刻后再打开电源开关,系统显示"打印机出错,系统无法指定设备". 故障解决:由于距离联想维

  • 详解phpmyadmin相关配置与错误解决

    详解phpmyadmin相关配置与错误解决 缺少mcrypt扩展 sudo apt-get install php5-mcrypt sudo php5enmod mcrypt 检查:/etc/php5/apache2/conf.d/ /etc/php5/mods-available/ 中是否有mcrypt文件 sudo service apache2 restart 开启 任意服务器登陆(访问远程服务器) 在配置文件`etc/phpmyadmin/library/config.default.p

  • ios 11和iphone x的相关适配问题及解决方法

    有关iOS11 ,最大的变化就是增加了一个安全区域(safeArea)的概念,iOS11 适配的大部分问题都是由于它引起的. 在ios 11中,tableView会莫名偏移,解决办法: //解决iOS11 tableview会出现漂移,预估高度都设为0 self.tableView.estimatedRowHeight = 0; self.tableView.estimatedSectionHeaderHeight = 0; self.tableView.estimatedSectionFoot

  • Asp高级故障解决以及相关代码

    asp出现了错误无法运行,首先要看到具体的错误信息,iis中需要设置下可以让客户端查看具体的错误IE中的设置方法,如下设置才可以看到详细的错误信息 另外就是充分利用 response.write "ok" response.end 检查asp程序中的错误,断行输出. 如果再出现错误,大家可以百度或google都搜索下.

  • 域名DNS解析的故障解决方法

    这个现象发生的机率比较大,所以本文将从零起步教给各位读者一些基本的排除DNS解析故障的方法. 一.什么是DNS解析故障? 一般来说像我们访问的www.jb51.net,www.kanshule.com这些地址都叫做域名,而众所周知网络中的任何一个主机都是IP地址来标识的,也就是说只有知道了这个站点的IP地址才能够成功实现访问操作. 不过由于IP地址信息不太好记忆,所以网络中出现了域名这个名字,在访问时我们这需要输入这个好记忆的域名即可,网络中会存在着自动将相应的域名解析成IP地址的服务器,这就是

  • 光驱不能顺利弹出故障解决方法说明

    光驱的常见故障除了光头老化读碟能力下降以外,还有一些不常见的机械故障.笔者最近就遇到一例. 一台光驱,读碟能力不错,一直没有修过.近日按出仓健,感觉光驱反应迟钝,托盘弹出缓慢,进仓也是如此.过了一段时间,故障加重,按动出仓键,只听到光驱内有电机转动声,但光驱托盘却无法弹出,多次按动进出仓键,光驱托盘偶尔也会有进出仓动作.在光驱面板上有一紧急弹出孔,用一根回形针或类似的东西可以把托盘顶出来,放入光盘后读碟正常.这个小小的毛病却令人烦不胜烦.虽然我们并不是学电器出身的,但是还是要发挥DIY精神,自己

  • 喷墨打印机的四个假故障解决办法

    正是由于在平时的办公系统中,喷墨打印机被使用的频率比较高,因此喷墨打印机出现故障的机会也比较多.如果您是一位细心人,有时间把喷墨打印机已经出现的故障进行总结的话,您就会发现在这些众多的故障中会隐藏着一些假故障.当然笔者在这里要事先声明的,假故障是指并不是由于喷墨打印机中的硬件的损坏而引起喷墨打印机不能正常工作,而是由于软件设置不当或者是由于用户个人认识上的错误观念,认为当前喷墨打印机不能工作肯定是发生了故障. 假故障一:打印的颜色与屏幕显示的颜色不一致.这种假故障其实是一种偏色现象.如果您的喷墨

  • Win2008 R2安装.NET Framework 4的windows6.1-KB958488-V6001-x64出现灾难性故障解决方法

    Windows 2008 R2安装.NET Framework 4时提示原因是:灾难性故障 原因:WINDOWS 2008的安全设置方案取消了C盘根目录的Users权限,只给administrator和system权限,结果在打补丁时就无法更新(安装.net4需要安装windows6.1-KB958488-V6001-x64补丁包) 解决方法:只需添加C盘根目录的Users读取和运行权限,即可顺利安装补丁.出于安全考虑,在补丁更新后可以取消该权限.然后再安装即可. 当Windows Update

随机推荐